2016-06-29 23 views
0

私はCORSのリクエストをgoogleに伝えたいと思います(実際にはjsonデータを返すウェブサイトにアクセスしています)。以下は私のAjaxのコードは次のとおりです。上記のコードではAjax/Javascript/Djangoを使用したCORSリクエスト

$.ajax({ 
    url: "https://www.google.com", 
    type: "get", 
    dataType: "json", 
    crossDomain: true, 
    success: function(data, textStatus) { 
     alert ("success" + data); 
    }, 
    error: function(data, textStatus) { 
     alert ("fail" + data); 
    } 
}) 

私はこのエラーを得た:

XMLHttpRequest cannot load https://www.google.com/. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://sdlweb-dev:1234' is therefore not allowed access. The response had HTTP status code 405. 

私は

 headers: { 
      "Access-Control-Allow-Origin": "*", 
      "Access-Control-Allow-Headers": "X-Requested-With,content-type", 
      "Access-Control-Allow-Credentials": true 
     } 

ようなコードを追加してみましたが、それでも同じエラーを得ました。

dataTypeを 'json'から 'jsonp'に変更しようとしました。このように要求が送信されますが、応答はJSONPされていないので、私は別のエラーました:私が持っていないので、(私は、私はへの要求を取得送信URLを意味し、サーバー側を変更せずに

Uncaught SyntaxError: Unexpected token < 

を私はCORSリクエストを送ることができますか?

ご迷惑をおかけして申し訳ございません!

おかげで、

答えて

0

あなた CORS要求を可能にするためにサーバーのコードへのアクセス権を持っている必要があります。

あなたが示したヘッダーは、要求ではなく応答で返されたヘッダーである必要があります。

+0

ありがとうございます!サーバーは、アクセスしようとしているサーバーを意味します。 (自分のウェブサイトをホストしている私のサーバーではない) – Feiiiiiiiiiiiii

+0

また、dataTypeを "jsonp"に設定することで応答を得ることができます。しかし、返されるデータ型は "jsonp"ではないので、何とかそれをラップして内容を取得する方法はありますか? – Feiiiiiiiiiiiii

+0

@Feiiiiiiiiiiiiiあなたの最初のコメントに答える:はい。あなたの第二に答える:いいえ。 – idbehold

関連する問題