1

IE で問題が発生しています (IE8+ のみ、Chrome は正常に動作します)。Web サイトの別のページに情報を投稿しようとすると、「Origin http://localhost:7230not found in Access-Control-Allow-Origin ヘッダー」というエラーが表示されます。 . これが何らかの形で CORS に関係していることは理解していますが、自分のドメインの外に出ることはありません。

リクエストを送信するページは次のとおりです。http://localhost:7230/TestPage.aspx

投稿しようとしているページhttp://localhost:7230/ActionHandler.aspx

ページに投稿するコード:

function RequestData()
   {
      //If we have no data don't request anything, just reset the timer
      if (dataStore.topReadings.length == 0 && dataStore.specifiedRanges.length == 0 && dataStore.entireRanges.length == 0 && dataStore.periodRanges.length == 0)
      {
         setInterval(RequestData, options.interval);
      }

      var params = "?Action=GET_DATA";
      var body = GetRequestXML();

      var xmlhttp;

      if (window.XDomainRequest) // code for IE8 and IE9
      {
         xmlhttp = new XDomainRequest();
         if (xmlhttp)
         {
            xmlhttp.onerror = function ()
            {
               alert("[Data Config]Failed to send request for configuration!\n" + xmlhttp.responseText);
            };
            xmlhttp.ontimeout = function ()
            {
               alert('xdr ontimeout');
            };
            xmlhttp.onprogress = function ()
            {
            };
            xmlhttp.onload = function ()
            {
               if (xmlhttp.responseText)
               {
                  HandleResponseData($($.parseXML(xmlhttp.responseText)));
               }
            };

         } else
         {
            alert('failed to create xdr');
         }
      }
      else
      {
         if (window.XMLHttpRequest) // code for IE7, Firefox, Chrome, Opera, Safari
         {
            try
            {
               xmlhttp = new XMLHttpRequest();
            }
            catch (e)
            {
               alert("[Data Request]Failed to create XMLHTTPRequest!\n" + e.message);
            }
         }
         else       // code for IE6, IE5
         {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
         }

         xmlhttp.onreadystatechange = function ()
         {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
            {
               //alert("Handled!");
               HandleResponseData($($.parseXML(xmlhttp.responseText)));
               that.trigger("dataReceived");
            }
         }
      }

      try
      {
         xmlhttp.timeout = options.timeout;
         xmlhttp.open("POST", "http://localhost:7230/ActionHandler.aspx" + params, true);
      }
      catch (e)
      {
         alert("[Data Request]Failed to open XMLHTTPRequest!\n" + e.message);
      }

      setTimeout(function () { xmlhttp.send(body); }, 0);
   }

これは、ビジュアル スタジオで実行される ASP.NET Web サイトです。こちらの手順に従い、関連する行を web.config ファイルに追加しました。リクエストを ActionHandler ページに送信する方法についてのヘルプをいただければ幸いです。

4

1 に答える 1

1

通常、あるドメインから別のドメインに投稿している場合、または同じドメインであってもhttpソースからhttpsエンド ポイントに投稿している場合に、これが表示されます。

このヘッダーを設定してみましたか?

Access-Control-Allow-Origin", "*"

明らかに、使用*は少し広すぎるので、絞り込みたいと思うでしょうが、それで問題が解決するかどうかを確認してください。

于 2013-09-04T22:34:54.640 に答える