ich den Code unten in WCF RESTful-Service habenCORS arbeiten nicht mit jQuery
public EmployeeJSON GetEmployeeJSON(string id)
{
List<EmployeeJSON> employees = new List<EmployeeJSON>()
{
new EmployeeJSON() {Name="Sumanth",Id=101,Salary=5000.00 },
new EmployeeJSON() {Name="Ehsan",Id=102,Salary=6000.00 },
};
var Employee = (from x in employees
where x.Id.ToString() == id
select x);
return Employee.FirstOrDefault() as EmployeeJSON;
}
Die unten ist die Erklärung des REST-konformen Service-
[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = "GetJson/{id}", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
EmployeeJSON GetEmployeeJSON(string id);
Wenn ich führen Sie die unten URL im Browser
http://localhost:1249/Service1.svc/GetJson/101
ich das Ergebnis als unter
{"GetEmployeeJSONResult":{"Id":101,"Name":"Sumanth","Salary":5000}}
Aber wenn ich von jQuery nenne, wird der Code geht Block auf Fehler und zeigt leere Nachricht
$(document).ready(function() {
});
var GetJson = function() {
$.ajax({
type: "GET",
url: "http://localhost:1249/Service1.svc/GetJson/101",
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function (data) {
var result = data.GetEmployeeJSONResult;
var id = result.Id;
var name = result.Name;
var salary = result.Salary;
$('#jsonData').html('');
$('#jsonData').append('<table border="1"><tr><th>Employee Id</th><th>Name</th><th>Salary</th></tr><tr><td>' + id + '</td><td>' + name + '</td><td>' + salary + '</td></tr></table>');
},
error: function (xhr) {
alert(xhr.responseText);
}
});
}
Der unter dem Code, ich in der web.config von WCF REST-konformer Service-
platziert<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
Was fehlt mir hier?
Kann Ihr vielleicht auch noch die kompletten Daten die 'xhr'-Variable (von Ihrem Fehlerblock)? –
Bitte konsultieren Sie die Spezifikation und die Hunderte von Artikeln zu diesem Thema. 'Access-Control-Allow-Origin' ist nur ein Header, den Sie einbinden müssen, normalerweise gibt es auch andere. –
Öffnen Sie die Browser-Konsole und sehen Sie, was genau die Anfrage und die Antwort sind. Meine wilde Vermutung wäre Antwort wird 405 Methode nicht erlaubt. – Evk