asmx、javascript、HTTP获取问题
首先,我知道我应该使用HTTPPOST,我知道如何使用它。 但我的任务是无论如何使用asmx、javascript、HTTP获取问题,javascript,c#,jquery,parameters,get,Javascript,C#,Jquery,Parameters,Get,首先,我知道我应该使用HTTPPOST,我知道如何使用它。 但我的任务是无论如何使用httpget。现在,有一个问题。我有一个WebMethod: [WebMethod] [ScriptMethod(ResponseFormat=ResponseFormat.Json,UseHttpGet =true)] public List<string> AddToCollection(string name, string lastname)
httpget
。现在,有一个问题。我有一个WebMethod
:
[WebMethod]
[ScriptMethod(ResponseFormat=ResponseFormat.Json,UseHttpGet =true)]
public List<string> AddToCollection(string name, string lastname)
{
collection.Add(name + " " + lastname);
return collection;
}
现在的问题是:当我使用type
POST
时,它工作得非常完美。但是使用GET
时,我得到一个错误,即无法识别参数name
。我应该做哪些更改才能使其正常工作?我认为您需要将数据作为查询字符串添加到url中。不确定这是否帮助我解决了一个问题,稍后我将发布代码。但是,难道不能使用GET
并传递JSON
数据吗?HTTP规范不允许GET请求的主体。只有POST和PUT可以有正文。可能是重复的,依赖于您提供链接的帖子,GET请求允许有正文,但它没有用处,并且违反了一些HTTP原则。
function AddToArray() {
var name = document.getElementById("name_add").value;
var lastname = document.getElementById("surname_add").value;
if (name == "" || lastname == "") {
alert("Wrong!");
} else {
var dataT = JSON.stringify({"name":name,"lastname":lastname});
$.ajax({
type: "GET",
url: "http://localhost:45250/ServiceJava.asmx/AddToCollection",
data: dataT,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
//something
}
})
}
}