2009-07-27 4 views
1

私はこのような一見一般的な問題に多くの "解決策"を見出しています。 ASP.NET 3.5 Webサービスに投稿しようとしているjQueryコードがあります。 Webサービスはjsonを返すことになっています。下記のコードで501 Internal Serverのエラーが表示されていますが、オンラインで見つかった解決策によれば、これはどのようになっているのですか? jqueryコードのerror関数は、parsererrorを表示します。データパラメータがサービス("userID=3456")に渡される方法を変更し、contentTypeプロパティを削除してdataTypeを "text"に変更すると、エラーは発生しませんが、JSONがXML文字列に返されます。ここでjQueryを使用してASP.NET Web ServiveからJSONオブジェクトを返すことができません

私のjQueryのコードです:ここで

$.ajax({ 
     type: "POST", 
     url: "mywebservice.asmx/Initialize", 
     data: "{'userID': '3456'}", 
     dataType: "json", 
     contentType: "application/json; charset=utf-8", 
     success: function(result) { 
      alert("success"); 
     }, 
     error: function(request, status, errorThrown) { 
      alert(status); 
      alert(errorThrown); 
     } 
}); 

は私のASP.NETコードである:ここで

<WebMethod()> _ 
Public Function Initialize(ByVal userID As Integer) As String 
    Dim scormInstance As New CMI(userID) 
    Return scormInstance.ToJsonString 
End Function 

は私のブラウザ(Firefoxの3.5.1)を介して、HTTPリクエストとレスポンスです

http://localhost/cognition/webservices/cognitionapi.asmx/Initialize 

POST /cognition/webservices/cognitionapi.asmx/Initialize HTTP/1.1 
Host: localhost 
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1 (.NET CLR 3.5.30729) 
Accept: application/json, text/javascript, */* 
Accept-Language: en-us,en;q=0.5 
Accept-Encoding: gzip,deflate 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Keep-Alive: 300 
Connection: keep-alive 
Content-Type: application/json; charset=utf-8 
X-Requested-With: XMLHttpRequest 
Referer: http://localhost/cognition/scorm-test2.html 
Content-Length: 20 
Cookie: RadEditorGlobalSerializeCookie=[_ctl0__ctl0__ctl0_Content_mainContent_mainContent_txtSpecialInstructionsModules]-[]#[_ctl0__ctl0__ctl0_Content_mainContent_mainContent_txtSpecialInstructionsToolbars]-[]# 
Pragma: no-cache 
Cache-Control: no-cache 
{"userID":"1234"} 

HTTP/1.x 500 Internal Server Error 
Cache-Control: private 
Content-Length: 4956 
Content-Type: text/html; charset=utf-8 
Server: Microsoft-IIS/7.0 
X-AspNet-Version: 2.0.50727 
X-Powered-By: ASP.NET 
Date: Mon, 27 Jul 2009 21:24:41 GMT 

私が間違って行っていることについてのアイデア???? !!!! ???

ありがとうございます!

答えて

2

を持っていますデバッガを使用して試してみて、それが何かをキャッチするかどうかを見て?私は、デバッガが接続されているが、ページ自体に多くの有益な情報を得ていないときに、ajax呼び出し失敗のいくつかの理由が表示されると考えています。

イベントログにも役立つ情報があります。

+0

私はそのような運がなかった。 –

+0

ウェブサービスからの応答をメソッド呼び出し(JSONP)に配置するカスタムhttpモジュールを作成しなければならなかったので、クロスドメインを扱うことができました。 –

0

クラスにはScriptService属性がありますか? C#の場合:

[System.Web.Script.Services.ScriptService] 
public class MyWebServiceClass 
{ 
    ... 
} 

そうでない場合は、エラーの詳細を確認し、ここでそれらを提供するために、Firebugを使用しています。

[WebMethod(), ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = false)] 

もで渡すPOSTDATAイムはすなわち、JSON形式である:

var postdata = "{'variable':'value'}"; 
1

はあなたを持っているいくつかのコードを見た後、私はそれが私は機能上、この装飾を見つけ働いて

0

Webサービスではintパラメータが必要なため、数値を送信する必要があります。 3456の引用符を削除してください。json.orgで型式を調べてください。

関連する問題