2012-02-19 12 views
2

私のリクエストのレスポンスはJavaスクリプトコードです。ブラウザにURLを置くと、生成されたJavaスクリプトコード全体がページに表示されます。 $ .ajaxに渡されるURLの形式は次のとおりです。なぜAjaxがリクエストを取得できないか

http://localhost:8080/vi-api/viapi?action=tag&projectId=45&tagId=345 

私はリクエストが成功したことがわかります。今、私はjQueryを使ってこのURLのAjaxリクエストを使用しています。

var finalUrl = "http://localhost:8080/vi-api/viapi?action=tag&projectId=45&tagId=345"; 
    var req = $.ajax({ 
      type:"GET", 
      url:finalUrl, 
      type:"script", 
      data:"", 
      success: function(html){ 
       alert('Requese sucessful.'); 
       }, 
      complete:function(jqXHR, textStatus) { 
       alert("request complete "+textStatus); 
      }, 
      error: function(xhr, textStatus, errorThrown){ 
       alert('request failed->'+textStatus); 
      }    
      }); 

質問1:これは、これがそうであるのはなぜ警告「要求」はエラーに失敗した与え

質問2:上記のプロセスに成功/失敗コードを返すためにどのような方法があります

+0

行1の構文エラー。 –

+0

行1は、文字列 –

+0

okでなければなりません。申し訳ありませんが、私は文字列のみを使用しています。 –

答えて

2

。だから、私は2番目のものだけが取られたと思う( 'スクリプト')。もちろん、 'script'は有効なHTTPメソッド(HEAD、GET、PUT、POSTなど)ではありません。 「スクリプト」を探していたキーワードはdataTypeで、xmljsonjsonptextscript、またはhtmlのいずれかです。

jsonpを忘れないでください。通常は、スクリプトのコンテンツを返して呼び出すのが良い方法です。

+0

+1クール..!あなたは華麗です。今、半分の問題が解決されました。しかし、なぜここで成功が呼び出されていますか? –

+0

Umesh:私はあなたの質問を理解していません。なぜ成功したのですか?それが呼び出されたとき、どうして呼び出されるべきではないと思いますか? – regilero

+0

申し訳ありません。タイプミス。私は成功が欲しいと思った。しかし、このコードでは実行されません。エラーと完全な機能を呼び出しています。 –

1
var finalUrl=http://localhost:8080/vi-api/viapi?action=tag&projectId=45&tagId=345; 

かなり無効javascriptのであるあなたは、おそらく文字列としてのURLを渡す意味:。

var finalUrl = 'http://localhost:8080/vi-api/viapi?action=tag&projectId=45&tagId=345'; 
+0

上記の見落としがあります。文字列のみをコードに使用しています。 –

+0

@Umesh、AJAXリクエストも送信されますか?あなたはFireBugでそれを見ますか?エラーはどこで発生しますか?どの行? –

+0

こんにちはダーリン、私はFirebug Netタブで何のリクエストも得ていませんが、上記のコードは2つのアラートを出します。1.request failed-> error 2.request complete error。 これは、このURLで「完全」と「エラー」が呼び出されていることを意味します。 –

2

私がなぜわからないが、私はすることができますあなたのいくつかのヒントをデバッグまたは問題を見つける方法を教えてください:

1)HTTPリクエストを見るためにfiddlerをインストールしてください。

2)タイプ: "スクリプト"、なぜ型がスクリプトですか? "text/html"を使ってみてください。

3)complete(jqXHR, textStatus)を使用すると、HTTPステータスを見ることができます。あなたのオブジェクトに2回 'タイプ' のキーを持っている

$.ajax({ 
    type:"GET", 
    url:finalUrl, 
    type:"script", 
    (...) 

:でmore info about $.ajax

+0

ありがとうございます。 "text/html"でも同じタイプの実行です。テストするコードにcomplete()を追加しました。Completeが呼び出され、 'textStatus'がエラーです。実際、私はFirebugでリクエストされているのを見ることはできません。 –

+0

+1 Fiddler。ありがとう! – nickles80

+0

別のシナリオでは、フィドラーでテストしました。私はAsp.net MVC応答JSONの結果でJsonRequestBehavior.AllowGetを使用することを忘れてしまった。 – QMaster

関連する問題