2012-04-04 10 views
0

jquery ajaxを使用してCGIから値を取得しようとしています。 CGIの設定は自分のサーバーにはないので変更できません。jquery ajax:CGIから値を読み取る

私はCGIについて知っているすべては私が直接ブラウザのアドレスバーでこれをテープで固定した場合ということです:

は「http:?//otherdomain/cgi-bin/getvalue.exe値」

それから私レスポンス値、つまり空白のブラウザウィンドウに表示される1234を取得します。

次のajaxコールでは、firebug - > network - > responseタブ(1234)で応答値を取得します。私はJavaScriptの値にアクセスすることはできません。 console.log(data)は "undefinded"を返します。

javascriptで値をキャッチする方法はありますか?

私は、パスワード(クッキー)もCGIに送信する必要があるので、私はdataType: "script"としてajaxリクエストを送信しなければならないと思います。私がdataType: "text"を選択した場合、クッキーからのパスワードはリクエストヘッダに送られません。

$.ajax({ 
     type: "GET", 
     url: "http://otherdomain/cgi-bin/getvalue.exe?value", 
     crossDomain: true, 
     cache: true, 
     dataType: "script", 
     success: function(data, textStatus, jqXHR) { 
      console.log(data); 
     }, 
     error: function(jqXHR, textStatus, errorThrown) { 
      console.log(errorThrown); 
      console.log(textStatus); 
      console.log(jqXHR);   
     } 
    }); 
+0

'dataType'プロパティは、要求ではなく** response **の予想されるデータ型です。空白のままにしておくと、デフォルトの "best guess"が使用され、jQueryはレスポンスの形式に基づいて型を推測しようとします。 –

+0

スクリプトとは異なるデータタイプを使用する場合、パスワードはサーバーに送信されません。 – user1313691

+0

**スクリプトとは異なるデータタイプを使用する場合**パスワードはサーバーに送信されません。リクエストヘッダー** Cookie:pwd = xxxx **は、私がdataType:ajax呼び出しで "script"を選択した場合にのみ送信されます。 – user1313691

答えて

1

same origin policy AJAXはタイプJSONPの応答を持っているものを除き、クロスドメイン要求を許可していませんが原因。 AJAXを使用してクエリするサーバー上にプロキシを設定する必要があります.AJAXは、要求を他のドメインに送信し、受信した応答をAJAX呼び出しに返します。

+0

私のwebsert anserとAccess-Control-Allow-Origin:*。したがって、クロスドメインは問題ではありません。 – user1313691

関連する問題