【发布时间】:2018-12-22 06:04:39
【问题描述】:
我有 ajax 函数可以将一些字符串发送到 web 服务。
这里是ajax:
var data = "wkt=" + wkt;
$.ajax({
url: "....some path",
type: "POST",
data: data,
crossDomain: true,
dataType: "text",
success: function (response) {
alert(response);
},
error: function () {
console.log('Request Failed.');
}
});
这里是网络服务:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class ValveService : System.Web.Services.WebService
{
[WebMethod]
public string ExecuteQuery(string wkt)
{
return "dummy!";
}
}
作为响应,我得到了这个字符串:
"<?xml version="1.0" encoding="utf-8"?><string xmlns="http://tempuri.org/">dummy!</string>"
虽然我希望得到响应“dummy!”。
知道为什么我会得到这个奇怪的响应,以及如何只获取从服务发送的字符串(在我的例子中是“dummy!”)吗?
【问题讨论】:
-
这是一个asp.net网络问题,我不是专家,所以我会让其他人真正回答这个问题。但是,我将专注于弄清楚为什么您的服务使用 XML 而不仅仅是字符串进行响应。
-
你告诉你的 AJAX 期望什么作为返回,但它看起来不像你在实际返回上设置响应头,所以它默认为 XML。您需要在返回时将内容类型设置为纯文本
-
@Nerdi.org 如何从 xml 中获取所需的字符串?是否必须解析它?
-
好吧,我希望您可以在 Executequery 返回时设置一个 ResponseHeader 或其他内容...不过请查看:stackoverflow.com/questions/3214384/…
标签: javascript asp.net ajax web-services asmx