2010-04-22 2 views
1

У меня есть URL-адрес, данные которого мне нужна как объект json. Я пробовал xmlhttprequest и ajaxobject, но не работает. Он даже не дает responseText, когда я даю его как предупреждение . Опубликуйте оба фрагмента кода здесь. url = http://mydomain.com:port/a/b/cПолучение данных веб-страницы как объекта json?

AJAX:

var ajaxRequest = new ajaxObject(URL); 

ajaxRequest.callback = function (responseText,responseStatus) { 

    alert(responseStatus); 

    JSONData = responseText.parseJSON(); 

    processData(JSONData); 
} 

ИСПОЛЬЗОВАНИЕ XMLHttpRequest:

var client = new XMLHttpRequest(); 

client.open('GET',URL,true); 

data = JSON.parse(client.responseText); 

alert(data.links.length); 

может кто-то пожалуйста, помогите мне с этим. Я понимаю, что скрипты могут быть проблемой, но как это сделать? и не должен тогда также давать предупреждения как нулевые или нулевые

+0

Является ли сервер возвращающим правильный тип контента 'application/json'? –

+0

@ Rosdi Как установить/проверить это? Также не должен возвращать нуль/нуль или код состояния 0.проблема в том, что он ничего не показывает – encryptor

+0

Проверьте мой ответ ниже, слишком долго вводить комментарий. –

ответ

0

Я собираюсь сделать здесь немного информации и сказать, что вы пытаетесь загрузить данные из разных доменов с помощью ajax?

Если это так, вы не сможете сделать это, используя стандартный запрос ajax. Есть некоторые услуги, такие как: http://www.ajax-cross-domain.com/, которые направлены на то, чтобы помочь преодолеть это, когда это необходимо.

Calling Cross Domain Web Services in AJAX также имеет некоторую полезную информацию о том, как вы можете настроить удаленный домен для приема входящих запросов и т.д.

надеюсь, что это помощь.

+0

@jamie, если он не должен возвращать нуль/нуль или код состояния 0 .. проблема в том, что он ничего не показывает. вы все еще думаете, что это связано с кросс-доменными скриптами? – encryptor

1

У меня была проблема подобное, как это ранее, где JQuery были проблемы с чтением ответа, потому что сервер возвращает тип содержимого text/html вместо application/json

Если вы не установите его, по умолчанию будет text/html.

Если вы используете PHP, это то, как вы установите его,

header('Content-type: application/json'); 

Если вы используете JSP, это то, как установить его,

response.setContentType('application/json'); 

Это должно быть сделано, прежде чем вы пишете ответ клиенту.

Установите firebug, и он позволяет увидеть фактический тип содержимого.

Удостоверьтесь, что у вас application/json.

+0

это сработало! Я также установил тип accept как application/json с обоими утверждениями, которые это сработало для меня! Спасибо rosdi и jamie – encryptor

+0

Приятно слышать, что .., не забудьте отметить мой ответ в качестве принятого ответа, чтобы я мог похвастаться моей мамой .. :-) –

0

Рассмотрите возможность использования LitJSON.

LitJSON - небольшая и быстрая библиотека для обработки данных в формате JSON. Это написано на C# и совместимо с со всеми языками .Net.

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