2016-07-22 10 views
3

私はbing spell check apiを使用してスペルチェックを実装しようとしています。 401エラーが発生しています。エラーは要求されたリソースに 'Access-Control-Allow-Origin'ヘッダーが存在しません。 401エラー

要求されたリソースに存在しません。したがって、原点「ヌル」はアクセスが許可されません。応答は、HTTPステータスコード401

<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> 

<script type="text/javascript"> 
    function hi(){ 


     var params = { 
      // Request parameters 
      "mode": "{Spell}", 
     }; 

     $.ajax({ 
      url: "https://api.cognitive.microsoft.com/bing/v5.0/spellcheck/?" + $.param(params), 
      beforeSend: function(xhrObj){ 
       // Request headers 
       xhrObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
       xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","{0c6cb56a997b41d4958ace895a677729}"); 
      }, 
     crossDomain: false, 
     headers: {'X-Requested-With': 'XMLHttpRequest'}, 
     type: "POST", 
     dataType: 'jsonp', 

      // Request body 
       data: { 
      dataSpell: $("#textContent").val()}, 

     success : function(result){ 
      $("div").html(result); } 
     //dataType: 'jsonp' 
    }); 


    } 
</script> 

</head> 
<body> 
<textarea rows="4" cols="50" id="textContent" spell-check="true" placeholder="Type here"></textarea> 
<button type="button" id="spellcheck" onclick="hi();" >Click Me!</button> 
<div> </div> 
</body> 

</html>​ 
+0

サードパーティのウェブサイトが明示的にホワイトリストを作成しない限り、別のウェブサイトのウェブスクリプトから1つのウェブサイトにリクエストを送信することはできません。 'Cross Domain Resource Sharing(CORS)'についてお読みください。 –

答えて

1

{...}あなたがあなたのページをオンにするよりも、別のドメインにはXMLHttpRequestをやっているしていました。したがって、ブラウザは通常、セキュリティ上の理由から同じオリジンでリクエストを許可するため、ブラウザをブロックしています。クロスドメインリクエストを行う場合は、何か別の処理を行う必要があります。

引用回答がthis threadからです。このエラーが発生する理由についてまだ混乱している場合は、それを確認してください。ここでCORSを使用してこれを回避する方法を知ることができます。

関連する問題