私はこのような一見一般的な問題に多くの "解決策"を見出しています。 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
私が間違って行っていることについてのアイデア???? !!!! ???
ありがとうございます!
私はそのような運がなかった。 –
ウェブサービスからの応答をメソッド呼び出し(JSONP)に配置するカスタムhttpモジュールを作成しなければならなかったので、クロスドメインを扱うことができました。 –