我需要使用 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,"maxItems":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);
}
});
它抛出的警报只是说“状态:”和“错误:”
控制台显示此“XMLHttpRequest 无法加载 http://[domain]/vizportal/api/web/v1/getViews。请求的资源上不存在“Access-Control-Allow-Origin” header 。因此不允许访问来源“http://[domain]”。响应具有 HTTP 状态代码 405。”
最佳答案
您是通话目的地的所有者吗?如果是,请在服务器端实现 CORS header 。
如果不是,您可以使用 JSONP(它绕过 CORS)或者您甚至可以实现您拥有的服务器端代理来路由外部请求(当然,在那里实现 CORS)。
如果您想了解更多信息,请查看 MDN 中有关 CORS 的文章:HTTP access control (CORS) on MDN
关于javascript - 使用 Javascript 调用外部 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33309824/