【发布时间】:2017-06-07 18:05:42
【问题描述】:
我需要使用 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' 标头。因此不允许访问源 'http://[domain]'。响应具有 HTTP 状态代码 405。”
【问题讨论】:
-
您目前是否在使用任何特定的 JavaScript 库?
-
使用自定义标头并从文件而不是服务器运行 javascript 会导致 CORS 问题(无访问源错误)。如果您使用 IE,您可以解决其中一些问题。
-
HTTP Error 405 Method not allowed 所以将方法更改为
POST,您也不需要进行字符串化,因为您的正文内容已经字符串化,然后更改Content-Type到application/json
标签: javascript api post