0

ブックマークレットによって任意の Web ページに挿入される 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);
});

呼び出しが行われたことを Web インスペクターで確認できますが、30 秒後に要求がタイムアウトするまで(保留中)のままです。サーバー ログは、サーバーがまったくヒットしていないことを示しています。奇妙なことは、ajax リクエストでdataパラメータを削除すると、サーバーがヒットし、期待どおりに動作することです。

$.ajax({
  type: "POST",
  url: "http://localhost:5000/parse"
}).done(function( msg ) {
  console.log("Success!!", arguments); // this works.
});

iframe と ajax リクエストのターゲットが同じドメインにあるため、クロスドメイン ポリシーの問題が問題になるとは思いません。ここで何が欠けていますか?このリクエストの通過を妨げているブラウザ レベルの何かがありますか?

4

1 に答える 1

0

ajax設定にdataTypeとcontentTypeを追加してみてください

$.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);
 });
于 2013-01-24T01:22:37.243 に答える