使用Javascript调用外部API

ant*_*n2g 10 javascript api post

我需要使用Javascript从我的网页向外部服务器发出POST请求.身体和反应都是json.我无法弄清楚如何进行此调用或使用哪些工具.我该如何打电话?

这是我到目前为止使用jQuery和ajax:

var body = '{"method":"getViews","params":{"filter":{"operator":"and","clauses":[{"operator??":"matches","value":"'+ inputValue +'"}]},"order":[{"field":"name","ascending":true}],"page":{"startIndex":0,"maxIt??ems":5}}}';
var response = $.ajax({
           url: "http://" + environment + "/vizportal/api/web/v1/getViews",
           method: "post",
           dataType:'json',
           data: JSON.stringify(body),
           headers: {
            'Content-Type': 'text/plain',
            'X-XSRF-TOKEN' : XSRFToken,
            'Cookie': 'workgroup_session_id='+workgroupSessionId+';XSRF-TOKEN='+XSRFToken
           },
           success:function(response){
                alert("success");
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) { 
                alert("Status: " + textStatus); alert("Error: " + errorThrown); 
            } 
        });
Run Code Online (Sandbox Code Playgroud)

它发出的警告只是说"状态:"和"错误:"

控制台说这个"XMLHttpRequest无法加载http:// [domain]/vizportal/api/web/v1/getViews.请求的资源上没有'Access-Control-Allow-Origin'标头.来源' http://因此,[domain] '不允许访问.响应的HTTP状态代码为405."

Mat*_*iot 9

您是电话目的地的所有者吗?如果是,请在服务器端实施CORS头.

如果不是,您可以使用JSONP(它绕过CORS),或者您甚至可以实现您拥有的服务器端代理来路由外部请求(当然,在那里实现CORS).

如果您需要更多信息,请查看MDN中CORS的文章:MDN上的HTTP访问控制(CORS)