我们需要两个STRING值传递给JSON.String值,如此
stringone = " [ {\"totalamount\": 19760,\"discount\": 7,\"NetAmount\": 18377,\"vat\":8,\"GrossAmount\":8,\"bookOrder\": \"ABCANG00110\" }, {\"totalamount\": 1960,\"discount\": 7,\"NetAmount\": 1377,\"vat\":7,\"GrossAmount\":7,\"bookOrder\": \"ABCG00110\" }]";
stringtwo = "[ {\"items\": 19760,\"descriptions\": 7,\"umo\": 18377,\"qty\":8,\"price\":8,\"lineamount\": \"22\" ,\"customerid\": 1960,\"tdate\": 7,\"orderId\": 1377,\"bookorder\":7,\"FOC\":7 }]";
我们试过这个
$.ajax({
url:'http://183.82.0.221:1234/MyService.svc/PostOrderData/'+stringone+','+stringtwo+'',
dataType:'jsonp',
type:'get',
cache:false,
timeout: 2000,
error: function(x, t, m) {
if(t=="timeout") {
alert("this app need internet connection so Please connect net first ");
} else {
//alert(t);
}
},
success:function(data) {
debugger;
alert(data);
console.log(data);
},
});
但显示alert("this app need internet connection so Please connect net first ");
且状态为400 Bad Request。
答案 0 :(得分:0)
问题是您从服务器接收状态代码400。状态代码400代表(来源:W3)
10.4.1 400错误请求
由于语法格式错误,服务器无法理解该请求。客户端不应该在没有修改的情况下重复请求。
在您的情况下,问题是至少URL的格式。根据您自己的地址服务器(因为SO而无法正常链接到它)。
http://183.82.0.221:1234/MyService.svc
You can also access the service description as a single file:
http://183.82.0.221:1234/MyService.svc?singleWsdl
这意味着您不应在MyService之后在您的网址上使用 / 。此外,您应该使用语法
将JSON作为URL参数传递http://183.82.0.221:1234/MyService.svc?PostOrderData&stringone=<value of stringone here>&stringtwo=<value of stringtwo here>
现在是您应该使用的网址。
此外,要使用jsonp,您的服务器需要使用JavaScript进行响应,因此它不会因为 ajax 响应而生成解析错误。您应该查看enable-cors.org如何启用跨源请求并使用普通AJAX。
总结如下:
启用CORS并禁用JSONP(或使用JavaScript进行服务器响应)。
将GET URL更改为如前所示。
使用JSON.stringify
从对象制作JSON字符串,而不是使用反斜杠()手动制作这些字符串。
从这些问题开始,一旦遇到下一个问题就提出一个新问题,因为它有很多问题,不幸的是。祝你好运!