我知道如何通过ajax在javascript和c#之间传递数据,现在我想知道fetch。
C#:
namespace WebApplication1
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
//[System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
}
}
的javascript:
fetch('http://localhost:62177/WebService1.asmx/HelloWorld')
.then(response => {
alert(response.json());
})
.then(response => {
alert(response);
})
它显示:
此网址的使用基于ajax。
我将网址更改为“http://localhost:62177/WebService1.asmx?op=HelloWorld”,显示:
我认为这是成功的反应,但是我没有收到任何信息并显示:
然后我修改了返回数据的方法,现在它是json-format:
C#:
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
public void HelloWorld()
{
object JSONObj = JsonConvert.SerializeObject("Hello World");
Context.Response.Write(JSONObj);
}
但没有变化。
我不知道怎么改变它。有人可以给我一些帮助吗?
答案 0 :(得分:0)
首先需要确保您的服务器以JSON格式返回内容。但另外,在您的JS中,您必须返回 response.json()
(或response.text() or whatever method is appropriate) in
fetch`以便可以处理流,以便您可以获得响应在下一个功能中:
fetch('http://localhost:62177/WebService1.asmx/HelloWorld')
.then(response => {
return response.json();
})
.then(responseJSON => {
alert(responseJSON);
})
初始响应是一个响应流对象,它实际上还没有包含任何数据。