2016-09-14 1 views
1

Я пытаюсь вытащить защищенный пароль канала XML с другого сайта, но я получаю следующее сообщение об ошибке:«Uncaught SyntaxError: Неожиданный токен <» при добавлении обратного вызова для внешней подачи вызова

"Uncaught SyntaxError: Unexpected token <"

Я констатировала ошибки доступа, которые я получал ранее, добавив функцию обратного вызова, но теперь я получаю эту нечеткую синтаксическую ошибку.

Мой код:

$.ajax({ 
    url: 'http://xxx.php?&callback=?', 
    dataType: 'jsonp', 
    type: 'POST', 
    username: 'xxxxx', 
    password: 'xxxxx', 
    crossDomain : true, 
    xhrFields: { 
     withCredentials: true 
    } 
}); 

Когда я инспектировать ошибка, я могу просто посмотреть «отказано», где корм должен быть: screen shot of error

Любые идеи, почему это не работает? Нужно ли мне запрашивать у поставщика кормов? Или что-то не хватает/неправильно в моем коде?

+0

Удивительно, но JSONP не XML ;-) –

ответ

0

Вы пытаетесь загрузить xml и использовать dataType: 'jsonp'. jQuery не может обработать ответ, потому что вы сообщаете функции $.ajax использовать ответ как JSONP. Таким образом, первый символ ответа < является неожиданным.

Используйте вместо этого dataType: 'xml'.

denied похоже исходит от неправильного входа. Вы уверены, что для вас работают username и password? У меня много проблем с этим. Я бы pefer изменить свой логин, чтобы использовать beforeSend, как это:

$.ajax({ 
    url: 'http://xxx.php?&callback=?', 
    dataType: 'xml', 
    type: 'POST', 
    crossDomain : true, 
    xhrFields: { 
     withCredentials: true 
    }, 
    beforeSend: function (xhr) { 
     xhr.setRequestHeader('Authorization', 'Basic ' + btoa('username:password')); 
    } 
}); 
+0

Привет, спасибо так много для вас комментарии. Я внес изменения, как было предложено, но теперь я получаю еще одну ошибку доступа к источнику: «XMLHttpRequest не может загрузить http: //www.xxx.php. Ответ на запрос предполетной проверки не проходит проверку контроля доступа: Нет« Access-Control- В запрошенном ресурсе присутствует заголовок Allow-Origin. Следовательно, для источника не разрешен доступ. В ответе был код статуса HTTP 405. " – JWhy

+0

Похоже, что ресурс под 'xxx.php' не имеет набора заголовков' CORS'. Вы уверены, что это публичный api, доступный AJAX? Ресурс должен иметь эти заголовки, если вы хотите использовать их с AJAX. В противном случае браузеры заблокируют обработку из соображений безопасности. Обратитесь к владельцу ресурса. @JWhy – eisbehr

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