在我的 Rest 服务器中,当调用来自用 Dart 编写的脚本时,我无法读取 HTTP 消息正文中包含的数据。
用ajax调用同一个webservice时,是没有问题的。在这两种情况下,通过 URL (pcParamUrl=yopla) 发送的数据都可以在服务器端读取。
我认为问题来自 ajax 中的“processData: false”,我不知道如何在 HttpRequest Dart 对象中设置此键。
我正在尝试转换此ajax调用(javascript):
var url = "http://127.0.0.1:8980/TestDartService/rest/TestDartService/Test?pcParamUrl=yopla";
$.ajax({url: url,
type: "POST",
processData: false,
contentType: "application/json",
data: JSON.stringify({ request: {pcParamBody: "yepYep"} }),
success: function(data, status) { alert(data.response.pcRetour); },
error: function(status) { alert("erreur"); }
});
使用 Dart 的这个:
HttpRequest request = new HttpRequest();
request.onReadyStateChange.listen((_) {
if (request.readyState == HttpRequest.DONE && request.status == 200 || request.status == 0)) {
print(request.responseText);
}
});
var url = "http://127.0.0.1:8980/TestDartService/rest/TestDartService/Test?pcParamUrl=yopla";
request.open("POST", url, async: false);
request.setRequestHeader("content-Type", "application/json");
String jsonData = JSON.encode('{ request: { pcParamBody: "yepYep" } }'); // etc...
request.send(jsonData);
谢谢你的帮助,对不起我的英语不好