gpt4 book ai didi

jquery - 从 jQuery 调用 .asmx Web 服务 : GET is not allowed?

转载 作者:行者123 更新时间:2023-12-01 06:48:33 31 4
gpt4 key购买 nike

我有一个简单的页面。加载时,它调用 Web 服务,然后出现以下错误:

an attempt was made to call the method using a GET request, which is not allowed

我的 JS 代码:

    function getTutors() {
var url = '<%= ResolveUrl("~/services/tutorservice.asmx/gettutors") %>';
$.ajax({
type: "GET",
data: "{'data':'" + 'test-data' + "'}",
url: url,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (d) {
alert('succes');
return d;
},
error: function () {
alert('fejl');
}
});
}

$(document).ready(function () {
var tutors = getTutors();
var locations = [];
}

我的网络服务:

    [ScriptService]
public class tutorservice : System.Web.Services.WebService {

public tutorservice () {

//Uncomment the following line if using designed components
//InitializeComponent();
}

[WebMethod]
public List<Tutor> gettutors(string data)
{
var tutorManager = new TutorManager();
return tutorManager.GetTutorApplicants();
}

}

我尝试删除 contentTypes,即使没有数据变量,它仍然给出相同的错误。

我最好的猜测是应该删除一些 contentType/dataType,但我也尝试过。

关于为什么我会收到此错误有什么想法吗?

最佳答案

我可以想到两个选择:

1) 在 AJAX 调用中使用 POST 而不是 GET:

type: "POST",

或 2) 如果您必须使用 GET,请将您的 Web 服务方法配置为允许 GETS:

[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public List<Tutor> gettutors(string data)
{
var tutorManager = new TutorManager();
return tutorManager.GetTutorApplicants();
}

并允许通过 web.config 进行 GETS:

<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>

关于jquery - 从 jQuery 调用 .asmx Web 服务 : GET is not allowed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18703838/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com