数据发布到phoneGap中的url

时间:2015-01-11 08:28:29

标签: jquery ajax json http cordova

我们需要两个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。

1 个答案:

答案 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。

总结如下:

  1. 启用CORS并禁用JSONP(或使用JavaScript进行服务器响应)。

  2. 将GET URL更改为如前所示。

  3. 使用JSON.stringify从对象制作JSON字符串,而不是使用反斜杠()手动制作这些字符串。

  4. 从这些问题开始,一旦遇到下一个问题就提出一个新问题,因为它有很多问题,不幸的是。祝你好运!