Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery ajax发布跨域问题_Javascript_Jquery_Ajax_Json_Cross Domain - Fatal编程技术网

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