Я выполняю некоторые запросы AJAX на свой сервер. Тип запроса и параметры одинаковы в двух случаях, но тип ответа, поступающий с сервера, отличается.Проблема с запросами AJAX с в браузере
СЛУЧАЙ 1:
Это внедрение в Titanium с помощью клиента титановой сети HTTP.
var xhr = Ti.Network.createHTTPClient({
onload : function() {
alert('sucess');
},
onerror : function(e) {
alert('error');
},
timeout : 5000
});
var main_url = "http://localhost:3000/shops/560/login.json?api_token=some_token&customer[phone_number]=9988776655&customer[pin]=9876";
xhr.open('GET', main_url);
xhr.send();
, который возвращает ответ отлично и, кажется, работает для меня.
СЛУЧАЙ 2:
Это внедрение в локальный файл с помощью метода JQuery AJAX.
var main_url = "http://localhost:3000/shops/560/login.json?api_token=some_token&customer[phone_number]=9988776655&customer[pin]=9876";
$.ajax({
url: main_url,
type: "GET",
dataType: "json",
timeout: 5000,
success: function(data, status, xmlstatus) {
alert("success");
},
error: function(data, status, xmlstatus){
if (t === "timeout") {
alert("timeout");
} else {
alert("some error");
}
}
});
Но из-за CROSS политики DOMAIN в браузеры он возвращает
XMLHttpRequest cannot load http://localhost:3000/shops/560/login.json?api_token=some_token&customer[phone_number]=9988776655&customer[pin]=9876. Origin null is not allowed by Access-Control-Allow-Origin.
Таким образом, чтобы избежать этого я добавил еще один В параметре
&callback = ?
Но все-таки возвращается
alert('some error');
Невозможно разобраться, куда вещи идут не так. Когда URL, параметры, введите все одинаково.
--------------- EDIT -------------
копания вниз iniside дает мне respone:
console.log(data) => parsererror
и
console.log(xmlstatus) => jQuery164023596301255747676_1335786441349 was not called
Попробуйте сделать url relative: 'url:" /shops/560/login.json?api_token = some_token & customer [phone_number] = 9988776655 & customer [pin] = 9876 "'. Я видел экземпляры, где jQuery считает, что он запрашивает внешний сервер из-за указанного порта. –
'dataType:" json ",' должен быть 'dataType: «jsonp», '. –
@ AnthonyGrist извините, что не работает. –