跨域JSON POST

时间:2016-07-16 16:50:38

标签: jquery json ajax

作为一个新手,我已经在各种论坛上阅读了数百条帖子,声明除非你使用代理,iframe,否则跨域JSON POST是不可能的。 jsonp(仅支持GET)或修改服务器(Access-Control-Allow Origin)。

这些似乎都不正确,因为像RESTClient for Firefox这样的工具肯定在没有任何服务器修改的情况下进行跨域POST。

以下jsp代码运行正常,如果我在与php服务器相同的域/ IP地址上运行它(_szFileRequest是完整的URL,reqData是JSON Stringify JSON数组信息)

jQuery.ajax('' + _szFileRequest,
    {
        dataType: 'json',
        type: 'POST',
        data: reqData,
        dataType: 'json',
        contentType: "application/json",

如果我在另一个网络服务器上运行这个完全相同的代码(在同一个子网上,但实际上是一个'不同的域'到php服务器)我必须改为

contentType: 'text/plain; charset=utf-8',

否则OPTIONS由服务器返回,而不是POST。不幸的是,text / plain会导致返回的JSON出现问题,导致JSON失败:正如您所期望的那样解析。

将初始代码插入Firefox的RESTClient可以正常工作。

我完全感到困惑(你显然可以在没有任何服务器修改的情况下进行跨域jquery.ajax POST)并且会对此提出任何反馈意见(你可能需要发送一些飞行前的标题或其他内容,像Fiddler这样的工具不要似乎准确显示了RESTClient发送的内容。

此致 活性

0 个答案:

没有答案