web-dev-qa-db-ja.com

Chrome=新バージョン73.0.3683.75でのAjax呼び出しのバグ?

Chromeアップデートの前に、私のコードは問題なく動作していました。

サーバーにajax呼び出しを行います。サーバーが呼び出しを受信し、JSONをクライアントに返しますが、答えは常に空です。 Fiddlerを見ると、サーバーから回答が得られます。

enter image description here

私はJQueryを試し、xmlhttp呼び出しも試します。常に同じ結果

新しいCORSポリシールールが適用されましたか?

私のxmlHTTP呼び出しがあります

 var xmlhttp = new XMLHttpRequest();   // new HttpRequest instance 
      var theUrl = "URL";
      xmlhttp.open("POST", theUrl);
      xmlhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
      xmlhttp.send('{ "args" :{ "Obj":"my obj"}}');
      xmlhttp.onreadystatechange = function(state,xhh,aaa){
        if (xmlhttp.readyState == XMLHttpRequest.DONE) {
          alert(xmlhttp.responseText);
        }
      }

Ajax呼び出しは似ています

$.ajax({
        url: "URL",
        data: '{ "args" :{ "Obj":"my obj"}}',
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        type: "POST",
        async: false,       
        error: function (xhr, ajaxOptions, thrownError) {
          if (that.Fail != null) {
            that.Fail();
          }
        },
        success : function(data){

           alert(data);

        }
      })
8
Cédric Boivin

Chrome 73にアップグレードした後、同じ問題が発生しました。@ wOxxOmのおかげで

これが今までの回避策です。

  1. Chrome:// flagsに移動します
  2. ネットワークサービスを有効にする

Step by step


UPDATE:

この発表によると、これはバグではありません: https://www.chromium.org/Home/chromium-security/extension-content-script-fetches

クロスオリジンフェッチをコンテンツスクリプトではなくバックグラウンドスクリプトに配置する必要があります。

8
Han Tran