为什么json响应不显示。

时间:2013-12-20 06:28:35

标签: javascript jquery

我在使用ajax时获得了未定义的值。我正在使用http://validate.jsontest.com/?json={%22key%22:%22value%22} 我在这个小提琴里这样称呼。

我使用post方法,因为我只使用此网址http://validate.jsontest.com/ 强文 http://jsfiddle.net/3TUvr/

var formData = {"key":"value"}; //Array 

$.ajax({
    url : "http://validate.jsontest.com/",
    type: "POST",
    data : formData,
    success: function(data, textStatus, jqXHR)
    {                      
      alert(data["empty"]+"data");
    },
    error: function (jqXHR, textStatus, errorThrown)
    {
      alert(jqXHR+"jqXHR");
    }
});

7 个答案:

答案 0 :(得分:2)

我在angular2中遇到了同样的问题,

在我的服务中我有代码

   postJSON(){
        var json = JSON.stringify({var1:'test',var2:3});
        var params = 'json=' + json;

        var header =  new Headers();
        header.append('Content-Type','application/x-www-form-urlencoded');

        return this._http.post('http://validate.jsontest.com', params, { headers: header }).map(res=>res.json());
    }

我的代码问题是我忘了导入标题。

   import {Headers} from 'angular2/http';

希望这会对某人有所帮助。

答案 1 :(得分:0)

http://validate.jsontest.com/不包含{"error": "You must pass JSON via the ?json= parameter to validate."}以外的任何值。

如果您将data["empty"]更改为data["error"],则会获得值You must pass JSON via the ?json= parameter to validate.。您的ajax请求正在检索页面中的值。

答案 2 :(得分:0)

弄清楚你传递的网址是错误的:

更正网址:http://validate.jsontest.com/?json={%22key%22:%22value%22}

更新了Js Fiddle Link

答案 3 :(得分:0)

我累了你的链接,json数据正确呈现,

你可能错过了dataType:'json'这就是为什么你得到'undefined'

您的代码应该是这样的,

var formData = {“key”:“value”}; //数组

$。AJAX({     url:“http://validate.jsontest.com/”,

type: "POST",

data : formData,

dataType : 'json',

success: function(data, textStatus, jqXHR)

{

   alert(data["empty"]+"data");

},

error: function (jqXHR, textStatus, errorThrown)

{

警报(jqXHR + “jqXHR”);

}

});

答案 4 :(得分:0)

实际上这个API需要url形式的数据?json =你的json

解决方案可以是:

var formData = {"key":"value"}; //Array 

$.ajax({
    url : "http://validate.jsontest.com/",
    type: "POST",
    data : "json="+formData,
    success: function(data, textStatus, jqXHR)
    {


       alert(data["empty"]+"data");
    },
    error: function (jqXHR, textStatus, errorThrown)
    {
   alert(jqXHR+"jqXHR");
    }
});

答案 5 :(得分:0)

http://validate.jsontest.com拒绝POST请求,除非Content-Type设置为application/x-www-form-urlencoded

答案 6 :(得分:0)

data属性必须是包含键/值对的字符串(http://api.jquery.com/jquery.ajax/)。

所以尝试使用:

var formData = 'json={key:value}';

http://jsfiddle.net/ugocasalone/mfgbdLxo/