Javascript JQuery ajax发布跨域问题
我正在从Javascript JQuery ajax发布跨域问题,javascript,jquery,ajax,json,cross-domain,Javascript,Jquery,Ajax,Json,Cross Domain,我正在从localhost上提供的页面向我在VPS上托管的服务器发出请求。我在发出GET请求时遇到问题,发现我必须在服务器上启用CORS,这很有效。现在我试图发出POST请求,但遇到了与GETs相同的问题。我回来了 {'readyState': 0, 'status': 0, "statusText": "error"} 我发送的请求: var story = $("#post_story").val(); var title = $("#title").val(); var url = B
localhost
上提供的页面向我在VPS上托管的服务器发出请求。我在发出GET
请求时遇到问题,发现我必须在服务器上启用CORS,这很有效。现在我试图发出POST
请求,但遇到了与GET
s相同的问题。我回来了
{'readyState': 0, 'status': 0, "statusText": "error"}
我发送的请求:
var story = $("#post_story").val();
var title = $("#title").val();
var url = BASE_URL + "/stories";
var data = {
content: story,
title: title,
category: "some_cat"
};
$.ajax({
url: url,
crossDomain: true,
type: "POST",
dataType: "json",
contentType: "application/json",
data: data,
success: (function (data, status) {
console.log(data);
$("#post_story").text("");
$("#title").text("");
}),
error: (function (xhr, status, err) {
console.log(status);
console.log(error);
console.log(xhr);
})
});
我在服务器上使用tshark,它不会显示任何传入内容
如果我将json
更改为jsonp
,tshark会显示:
GET /stories?callback=jQuery1102020064887526511765_1385831485614&content=somewords&title=sometitle&category=some_cat&_=1385831485615 HTTP/1.1
但是在客户端上,我得到一个
500内部服务器错误
JSONP只支持get,因为它将脚本文件插入到DOM中,但是如果服务器正在侦听和应答POST请求,则对启用CORS的服务器的常规JSON请求应该与POST一起工作,并发送正确的标题。我建议您使用Google Chrome的“邮递员”应用程序,它允许您立即模拟请求并调试此类内容。@jacktheripper+1对于资源,刚刚试用过。它回来了!所以现在我更困惑了,因为服务器显然在工作。你能看看Chrome开发工具中的“网络请求”面板,并将其与你通过Postman发出的请求进行比较吗?可能正在揭示…@jacktheripper开发工具中的方法显示的是OPTIONS
,而不是POST
。