【问题标题】:JQuery send JSONJQuery 发送 JSON
【发布时间】:2017-11-14 20:55:22
【问题描述】:

我需要通过 POST 发送 json 数据,所以 在我的 var request 中具有 json 对象的结构

任何时候点击一个按钮,我都会调用这个函数:

function sendJSON(p_id, p_type) {
        var request=[{
          "id":null,
          "version":null,
          "type":null,
          "enabled":false,
          "priority":null,
          "params":[
            {
              "id":null,
              "version":null,
              "value":p_id,
            },
            {
              "id":null,
              "version":null,
              "value":p_type,
              "valueXML":null,
              "editable":false,
            }
          ],
          "lastEX":null
        }
        ];
        console.log(request);
        $.ajax({
            url: 'http://192.168.4.6:8080/recList/',
            type: 'POST',
            crossDomain: true,
            contentType: 'application/json',
            data: request ,
            dataType: 'json',
            success: function (response) {
                var resp = JSON.parse(response);
                alert(resp);
            },
            error: function (xhr, status) {
                alert("err");
            }
        });
    };

我不明白为什么它不起作用 我是不是忘记了什么?

Request URL:http://192.168.4.6:8080/recList/
Request Method:OPTIONS
Status Code:200 OK

Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US;q=0.6,en;q=0.4
Access-Control-Request-Headers:content-type
Access-Control-Request-Method:POST
Connection:keep-alive

【问题讨论】:

  • 为什么要使用 JSON.stringify?如果需要,您可以将请求作为对象发送。
  • 不用stringfy试试看
  • 状态码是200,应该没问题。也许 JSON.parse 失败 - 您是否尝试调试成功回调?
  • 请求未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin '192.168.4.6:8080/recList' 不允许访问。 xHR 加载失败:POST
  • 您从哪个域发送请求?确切的网址?

标签: jquery json ajax post


【解决方案1】:

type: 'POST' 更改为method: 'POST',

【讨论】:

  • 查询字符串参数:undefined=undefined
  • 带有数据:JSON.stringify(request) 它不是未定义的
  • 对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。
【解决方案2】:

在数据中传递您的请求变量,如下所示

data : {'data':request}

并使用“数据”键访问函数中的数据。

【讨论】:

    【解决方案3】:

    你的 Json 变量是

    request=[{..}];
    

    请尝试删除外部方括号,即“[”和“]”。

    那么你的请求变量是:

    var request={
          "id":null,
          "version":null,
          "type":null,
          "enabled":false,
          "priority":null,
          "params":[
            {
              "id":null,
              "version":null,
              "value":p_id,
            },
            {
              "id":null,
              "version":null,
              "value":p_type,
              "valueXML":null,
              "editable":false,
            }
          ],
          "lastEX":null
        };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-24
      • 1970-01-01
      • 1970-01-01
      • 2011-09-29
      • 1970-01-01
      • 2013-01-09
      • 2019-05-10
      • 2013-03-28
      相关资源
      最近更新 更多