2013-12-20 6 views
1

Я получаю неопределенное значение при использовании ajax.Я использую http://validate.jsontest.com/?json={%22key%22:%22value%22} Я называю это в этой скрипке.Почему ответ json не отображается.?

Я использую метод пост в том, что я использую только этот адрес 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"); 
    } 
}); 
+0

Попробуйте добавить DATATYPE к запросу $ .ajax как DATATYPE: '' JSON. – ram

+0

Я проверяю настройку dataType на «json» не влияет. Пожалуйста, см. Мой ответ. – ram

+0

У вас есть ошибка в вашем формате передачи данных ajax. url? json = formdata - правильный формат. – Airan

ответ

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 извлекает значение на странице.

0

Выяснить, что URL вы проходили неправильно:

Правильный URL: http://validate.jsontest.com/?json={%22key%22:%22value%22}

Обновлено Js Fiddle Link.

0

Я загнал свою ссылку и данные JSON оказывается правильно,

Вы, наверное, пропустил DATATYPE: «JSON», поэтому вы получаете «неопределенными»

Ваш код должен быть таким,

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");

} 

});

+0

Я проверил настройки dataType на «json» не повлиял на результат :) – ram

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"); 
    } 
}); 
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'; 

Надеюсь, это будет полезно для кого-то.

Смежные вопросы