我正在尝试使用方法post使用以下代码片段进行JQUERY ajax调用, 但是呼叫不是服务器和接收错误。没有'访问控制 - 允许 - 来源'标头出现在请求的资源上。
我们根据各个帖子中的建议在服务器端代码中添加了这些标头。那里没有运气。 我也在clinet方面添加了标题。 我正在尝试从我的本地机器到开发环境中的服务器。 get的另一个请求工作正常,我只有帖子的问题。 我为数据尝试了JSON.stringify,但没有运气。
$.ajax({
url: ttsCreateURL,
type: "POST",
dataType: 'json',
crossDomain: true,
data: { "ballotId" : "0" ,"conMonth": "JUN2014","empId":"9999","airlineCode":"AA", "createdDate":"" },
success: function(response){
alert(response);
},
error:function(xhr, ajaxOptions, thrownError){
//ajaxError("There was an error . Please try again.",xhr, ajaxOptions, thrownError);
$('#Main').load('error.html');
}
});
当我尝试在浏览器中查看url以及查询字符串参数时,我看到错误415:不支持的媒体类型 错误。
答案 0 :(得分:0)
更改dataType =“jsonp”并在服务器端使用回调。
答案 1 :(得分:0)
如果你真的想使用CORS而不是JSONP,这里有一些关于跨源请求故障排除的提示:
Access-Control-Allow-Origin
丢失了。确保您的服务器始终设置正确的响应标头。使用本地webproxy可以确定这一点。在Windows上我使用Fiddler。在Linux上,我认为Wireshark有效。Access-Control-Allow-Methods
标题[显然是POST]以及其他Access-Control*
- 标题以及您对此类OPTIONS请求的回复。Access-Control-Allow-Origin
标头不得为通配符。正如您所写,当您在浏览器中请求URL时,您会收到415错误,请查看此特定服务器所期望的内容。默认情况下,jQuery在使用application/x-www-form-urlencoded
时对您的请求($.ajax
)数据进行URL编码。 HTTP状态代码415表示您的客户端发送了服务器不喜欢使用的内容。如果服务器也在你的POST上用415解决了,那么如果错误处理程序中通常没有Access-Control-Allow-Origin
标题就不会太令人惊讶。