我有一个由小书签注入任意网页的iframe。它指向http://localhost:5000/test
,这是一个运行以下Javascript的简单HTML页面:
$.ajax({
type: "POST",
url: "http://localhost:5000/parse",
data: {data:"hello world"}
}).done(function( msg ) {
console.log("Success!!", arguments);
}).fail(function(jqXHR, textStatus, errorThrown) {
console.log("Error", arguments);
});
我可以在网络检查器中看到进行了调用,但它是(待定),直到请求在30秒后超时。服务器日志显示服务器根本没有被命中。奇怪的是,如果我删除了ajax请求中的 data 参数,服务器就会被命中,事情会按预期运行。
$.ajax({
type: "POST",
url: "http://localhost:5000/parse"
}).done(function( msg ) {
console.log("Success!!", arguments); // this works.
});
我不希望跨域策略问题成为问题,因为iframe和ajax请求目标位于同一个域上。我在这里错过了什么?浏览器级别是否存在阻止此请求通过的内容?
答案 0 :(得分:0)
尝试将dataType和contentType添加到ajax设置
$.ajax({
type: "POST",
url: "http://localhost:5000/parse",
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: {data:"hello world"}
}).done(function( msg ) {
console.log("Success!!", arguments);
}).fail(function(jqXHR, textStatus, errorThrown) {
console.log("Error", arguments);
});