作为一个新手,我已经在各种论坛上阅读了数百条帖子,声明除非你使用代理,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发送的内容。
此致 活性