Вопрос по jquery, ajax – Сообщение jquery ajax говорит, что xxx не разрешен Access-Control-Allow-Origin

3

Я пытался вызвать API eBay FindProducts с помощью AJAX (post запрос) но застрял при следующей ошибке:

XMLHttpRequest cannot load http://open.api.ebay.com/shopping?callname=FindProducts. Origin http://localhost.com/test.php is not allowed by Access-Control-Allow-Origin.

Мой код:

$.ajax
({
    type: "POST",
    url: 'http://open.api.ebay.com/shopping?callname=FindProducts',
    dataType: ($.browser.msie) ? "text" : "xml",
    contentType: 'application/x-javascript',
    crossDomain : true,
    data: {
        'X-EBAY-API-APP-ID' : 'ebayAppId', 
        'X-EBAY-API-VERSION': '771', 
        'X-EBAY-API-SITEID': '0', 
        'X-EBAY-API-REQUEST-ENCODING': 'NV', 
        'X-EBAY-API-RESPONSE-ENCODING': 'json',
        'QueryKeywords' : '753759971632',
        'MaxEntries' : '3'
    },
    success: function (result) {
        alert('success');
        alert(result);
    },
    error: function (data) {
        alert((data));
    }
})

Как я могу пройти через эту ошибку.

Я пробовал настройкуdataType : jsonp (Я знаю, что XML извлекается, но для обхода ошибки я установил его в jsonP). Это работает, но jQuery не смог проанализировать XML, поскольку ожидался ответ json.

Error: User Rate Limit Exceeded lbstr
Error: User Rate Limit Exceeded Eswar Rajesh Pinapala
Решение альбина решит эту проблему, однако хотите ли вы, чтобы ваш appid был открыт для публики? Kevin B
"I tried setting dataType : jsonP" - это не сработает, потому что JSONPnotError: User Rate Limit ExceededCORSError: User Rate Limit Exceeded Joseph
Error: User Rate Limit Exceeded Eswar Rajesh Pinapala

Ваш Ответ

3   ответа
0

0

Error: User Rate Limit ExceededError: User Rate Limit Exceeded

multiple, space-separated values: As of jQuery 1.5, jQuery can convert a dataType from what it received in the Content-Type header to what you require. For example, if you want a text response to be treated as XML, use "text xml" for the dataType. You can also make a JSONP request, have it received as text, and interpreted by jQuery as XML: "jsonp text xml." Similarly, a shorthand string such as "jsonp xml" will first attempt to convert from jsonp to xml, and, failing that, convert from jsonp to text, and then from text to xml.

Error: User Rate Limit ExceededdataType строка кода к этому:

dataType: ($.browser.msie) ? "jsonp text xml" : "xml",

Или вы можете добавить&responseencoding=JSONError: User Rate Limit Exceededдругой ответ.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededopen.api.ebay.com/…Error: User Rate Limit Exceeded Eswar Rajesh Pinapala
Error: User Rate Limit Exceeded Eswar Rajesh Pinapala
Error: User Rate Limit Exceeded Eswar Rajesh Pinapala
8

&responseencoding=JSONError: User Rate Limit ExceededError: User Rate Limit Exceeded

UPDATE Рабочий пример, Я сделал то, что я изменил наdataType:'jsonp' добавленнойjsonp:'callbackname', Потому что jQuery по умолчанию вызывает параметр обратного вызоваcallback, но eBay ожидаю, что это будет называтьсяcallbacknameError: User Rate Limit Exceeded

Error: User Rate Limit Exceeded Eswar Rajesh Pinapala
Working exampleError: User Rate Limit ExceededdataType:'jsonp'Error: User Rate Limit Exceededjsonp:'callbackname'Error: User Rate Limit ExceededdocsError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Eswar Rajesh Pinapala
Error: User Rate Limit Exceeded Eswar Rajesh Pinapala
Error: User Rate Limit ExceededdocsError: User Rate Limit Exceeded

Похожие вопросы