Cross Domain JQuery Ajax Request & WCF REST Service
Wywoływam (żądanie Ajax) usługę REST WCF, a żądanie jest żądaniem między domenami.
Jeśli wdrożę moją usługę w tej samej domenie, wszystko działa jak śmietanka. W końcu w produkcji usługa będzie w innej domenie.
Używam jQuery 1.5.2. Moja usługa zwraca mi błąd mówiący:
errorThrown: "jQuery15208493315000087023_1334089616458 was not called"
textStatus: "parsererror"
Chociaż w Firefoksie mogę zobaczyć wartości JSON, ale wykonanie należy do obsługi błędów żądania Ajax.
Moje żądanie Ajax to:
function CallService() {
$.ajax({
type: "GET",
url: "http://SomeService/EmpService.svc/GetValues?dv=1455",
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
processdata: false,
success: function (data) {
ServiceSucceeded(data);
},
error: function (jqXHR, textStatus, errorThrown) {
debugger;
alert("Service Error");
ServiceFailed(jqXHR, textStatus, errorThrown);
}
});
}
Po stronie usługi WCF skonfigurowałem CrossDomainScriptAccess na true:
<webHttpBinding>
<binding name="webHttpBindingWithJsonP"
crossDomainScriptAccessEnabled="true" />
</webHttpBinding>
Odpowiedź JSON, którą otrzymuję z serwera to:
[{"Message": "Stop On Duty", "MessageTime": "\/Date(1334068773893-0500)\/"},
{"Message": "Start On Duty", "MessageTime": "\/Date(1334068763540-0500)\/"},
{"Message": "App_testing_4102012924am", "MessageTime": "\/Date(1334068533627-0500)\/"},
{"Message": "Kunal_testing_4102012924am", "MessageTime": "\/Date(1334067945510-0500)\/"},
{"Message": "Alert: Door Open", "MessageTime": "\/Date(1334066280963-0500)\/"}]
Czy brakuje mi tutaj jakichkolwiek ustawień. Cały kod działa poprawnie, jeśli usługa jest przenoszona do tej samej domeny.
Zajrzałem do podobnego postu, ale nie mogłem zrobić tego.