Post jquery ajax mówi xxx niedozwolone przez Access-Control-Allow-Origin
Próbowałem wywołać API eBay FindProducts za pomocą AJAX (post
żądanie), ale utknął na następującym błędzie:
XMLHttpRequest nie może się załadowaćhttp://open.api.ebay.com/shopping?callname=FindProducts. Pochodzeniehttp://localhost.com/test.php nie jest dozwolone przez Access-Control-Allow-Origin.
Mój kod:
$.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));
}
})
Jak mogę przejść przez ten błąd.
Próbowałem ustawieniadataType : jsonp
(Wiem, że XML jest pobierany, ale aby obejść błąd, ustawiłem go na jsonP). Działa, ale jQuery nie był w stanie przeanalizować XML, ponieważ oczekiwano odpowiedzi json.