Попытка получить данные из службы REST WCF в другом домене. Вот создание моей службы, которая кажется прекрасной и получает запрос с моим параметром и сигнатурой функции метки времени jQuery.вызов перекрестного домена jQuery для службы REST
_Service = new WebServiceHost(myObject);
var binding = new WebHttpBinding() { CrossDomainScriptAccessEnabled = true };
var endpoint = _Service.AddServiceEndpoint(typeof(myObjectContract), binding, "http://localhost:8000/myObject_Service");
endpoint.Behaviors.Add(new WebHttpBehavior());
_Service.Open();
Вот вызов JQuery ...
$.ajax({
url: "http://localhost:8000/myObject_Service/GetInterfaceInfo?interfaceId=1&callback=?",
crossDomain: true,
dataType: "jsonp",
success: function (data) {
alert(JSON.stringify(data));
}
}).fail(function (data, textStatus, errorThrown) {
alert(textStatus);
});
Я попытался форматирования данных несколько способов, чтобы получить его, чтобы быть разобраны правильно, но я либо получаю сообщение об ошибке, что функция обратного вызова " не было вызвано "или что существует" parsererror ". Ниже приведена попытка, возвращающая строку в том формате, который люди предлагали на других сообщениях, но никаких данных никогда не происходит.
jQuery17106912882712204009_1384296559027({"data":"1","data":"2"})
Вот данные, которые передаются от службы
public string GetInterfaceInfo(int interfaceId, string callback)
{
return new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(_I);
//Tried this below, also with no success.
//return string.Format("{0}({1})", callback, output);
}
Я не подвожу никаких данных обратно на мой АЯКС вызов, хотя он работает, хотя, потому что в вызове браузера. Я получаю все эти данные.
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">
[{"Id":100,"Status":true,"Direction":"Inbound","Name":"Test_100","Sent":0,"Received":1000,"LastMessage":"2013-11-13 08:50:33.AM","Filtered":0,"CanRestart":true},{"Id":101,"Status":false,"Direction":"Inbound","Name":"Test_101","Sent":0,"Received":1000,"LastMessage":"2013-11-13 08:50:33.AM","Filtered":0,"CanRestart":true},{"Id":102,"Status":true,"Direction":"Inbound","Name":"Test_102","Sent":0,"Received":1000,"LastMessage":"2013-11-13 08:50:33.AM","Filtered":0,"CanRestart":true}]
</string>
Что не так с моим звонком ajax?
к вашим последним трем вопросам, нет, нет, и нет. Вы генерируете 'jQuery17106912882712204009_1384296559027' вручную, или это то, что jQuery сообщает серверу о возврате. Пока все выглядит хорошо, кроме 'crossDomain: true', это не нужно, но не должно сделать ваш запрос неудачным. –
Когда вы получаете parseerror, вы открываете свою консоль javascript, чтобы увидеть ответный текст, который не удалось разобрать? –
Это возврат к вашему успеху или сбою? И если проверить запрос через проверку сети через браузер, каков код ответа и ответа? – Daved