2012-02-18 8 views
2

私はシンプルなAJAX呼び出しがあります。

$.ajax({ 
    url: 'http://localhost:39657/List/Receptacle', 
    dataType: "json", 
    success: function(json) { alert("success"); } 
}); 

とフィドラーでは、全体の応答は次のとおりです。

HTTP/1.1 200 OK 
Server: ASP.NET Development Server/10.0.0.0 
Date: Sat, 18 Feb 2012 07:39:11 GMT 
X-AspNet-Version: 4.0.30319 
Content-Length: 97 
Cache-Control: private 
Content-Type: application/json; charset=utf-8 
Connection: Close 

[{"Selected":false,"Text":"ABC","Value":"3"},{"Selected":false,"Text":"XYZ","Value":"4"}] 

だから、が働いているように見えますが、私は何の警告を取得していない...

私はここで間違っていますか?私のJSONが解析されないのはなぜですか?ありがとうございました。

+0

呼び出されたURLは何ですか? URL全体を投稿してください。間違ったURLにアクセスしている可能性があります。 – Tadeck

+0

Tadeck、URLは正常です、私は応答をフィドラーに戻ってくるのを見ています。 – naspinski

+0

jqueryのどのバージョンを使用していますか? 1日か2日前に私は最後のJqueryバージョン – neoascetic

答えて

2

なぜあなたはURLの最後に'?callback=?'を持っていますか?それはjsonpですか?はい、それは成功ハンドラまたはエラーハンドラをヒットし、それがどのようなエラーメッセージを与えないかどうかを確認?dataType:'jsonp'

編集

エラーハンドラを作る

$.ajax({ 
    url: 'localhost:39657/List/' + $(this).val(), 
    dataType: "json", 
    success: function(json) { 
      alert("success"); 
    }, 
    error:function(xhr){ 
     console.log(xhr.responseText); 
    } 
}); 

を変更私はそれが有効なJSONとあなたがセキュリティ機能として実装されCORSブルース、に実行されているコメントからinferedとしてlook here


細かい解析さがあるとして、JSONの構文解析に問題があると思ういけませんクロスサイトスクリプティング攻撃を防ぐために jsonpを使用することはできません。クライアント側でdataTypeをjsonpに設定するだけで、サーバー側も同様に構成する必要があります.Webサービスではクロスドメインを許可するように応答ヘッダーを設定できますリソース共有by

var resp = new HttpResponseMessage(); 
resp.Headers.Add("Access-Control-Allow-Origin","*"); 

代わりに使用すると、サーバ側プロキシを作り、そのプロキシは、そのWebサービスやWebアプリケーションかどうか、あなたの他のプロジェクトを呼び出してから、このサーバーサイドを行う必要があり、クライアント側

+0

私はそれを更新しました(変更を反映しています)。それでもアラートは得られません。応答は同じです。 – naspinski

+0

私は(空の文字列) – naspinski

+0

エラーハンドラを打つが、xhr.responseTextは単に空の文字列です。 – naspinski

0

に受信した応答を返すことができます。

HttpResponseMessage m = new HttpResponseMessage(HttpStatusCode.NotFound);    
m.Content = new StringContent("oops");        
throw new HttpResponseException(m); 
+3

理由を説明してください。 OPは彼が何を間違えたのか、なぜJSONが解析していないのかを尋ねました。ちょうどソースコードでは不十分です。 – nalply

関連する問題