dotnetnuke モジュールを開発していますが、javascript を介して Web サービスに接続してデータを取得する際に多くの問題があります。
私は次のjavascriptを持っています:
function Test() {
$.ajax({
type: "POST",
url: 'http://localhost/DNN11/service1.asmx/TestMethod',
data: "{'data':'" + "abc" + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
alert("success");
},
error: function(e) {
alert("error");
}
});
}
次に、私のWebサービスで次のWebMethod
[WebMethod]
public string TestMethod(String data)
{
return "Hello World";
}
ただし、投稿が正常に呼び出されない場合、Web サービスを通過できません。500 Internal Server エラー ページが表示され続けます。
何が間違っている可能性がありますか?これについて他に必要な方法はありますか?
ありがとう
[編集]
これがコード全体です
<script type="text/javascript">
function Test() {
$.ajax({
type: "POST",
url: '<%=ResolveUrl("~/DesktopModules/ModuleTest/WebService1.asmx/TestMethod")%>',
data: '{ data: "test" }',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
alert("Success: " + msg);
},
error: function(msg) {
alert("Failed: " + msg.status + ": " + msg.statusText);
}
});
}
</script>
<div>
<input type="button" value="Load" onclick="Test(); return false;" />
</div>
[System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod()]
public string TestMethod(string data)
{
return "Hello World";
}
}
Webservice を新しいフォルダーの DotNetNuke フォルダーとローカル プロジェクトの両方に配置しようとしました。また、ScriptMethod() タグを WebService に配置して、スクリプトがそれを呼び出せるようにします。しかし、まだ何もありません。