来自iFrame内部的jQuery POST请求超时

时间:2013-01-24 01:15:52

标签: jquery html ajax iframe bookmarklet

我有一个由小书签注入任意网页的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请求目标位于同一个域上。我在这里错过了什么?浏览器级别是否存在阻止此请求通过的内容?

1 个答案:

答案 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);
 });