2012-02-26 2 views
1

Я написал службу WCF, которая берет строку и возвращает строку. Когда я вызываю это из своего javascript, он вызывает отображение предупреждения об ошибке.Ошибка JQuery.Post при вызове службы WCF

Я пробовал читать API и не знаю, что я делаю неправильно, или как отобразить фактическое сообщение об ошибке.

Вот мой JavaScript:

var path = "http://localhost:15286/Service.svc/SubmitTest?url=" + encodeURIComponent(info.srcUrl); 
var jqxhr = $.post(path, function() { 

    alert("success"); 
}) 
.success(function() { alert("second success"); }) 
.error(function(oEvent) { alert("error"); }) 
.complete(function() { alert("complete"); }); 
}; 

Я наблюдал службу через отладчик, когда он вызывается и возвращает строку «Hello World» без ошибок, так я полагаю, моя проблема заключается в JavaScript боковая сторона.

службы WCF:

[ServiceContract] 
public interface IService 
{ 
    [WebInvoke(UriTemplate = "/Submit?input={value}")] 
    [OperationContract] 
    string Submit(string value); 
} 

public class Service : IService 
{ 
    public string Submit(string input) 
    { 
     return "hello world"; 
} 
+0

Какой тип содержимого ответа является настройкой службы? – nnnnnn

+0

Вам удалось? – gdoron

+0

Извините @ gdoron, я не понимаю ваш вопрос :( – BeepBoop

ответ

0

Используйте параметр DATATYPE, если вернется сервис "Hello World", то тип данных "текст":

var jqxhr = $.post(path, function() { 

    alert("success"); 
}, "text") // <==== 
.success(function() { alert("second success"); }) 
.error(function(oEvent) { alert("error"); }) 
.complete(function() { alert("complete"); }); 
}; 

dataTypeThe тип данных, ожидаемых от сервер. По умолчанию: Intelligent Guess (xml, json, script, text, html).

И много раз догадка не слишком «умная» ...

+0

Спасибо, я пробовал это, но с тем же результатом :( – BeepBoop

0

вы можете столкнуться проблемами Междоменных попробуйте добавить

Headers.Add("Access-Control-Allow-Origin", "*"); 

говорит в службе выглядит ответ например

var Response = new HttpResponseMessage<string>("hello world"); 
Response.Headers.Add("Access-Control-Allow-Origin", "*"); 
return Response ; 
+0

К сожалению, вы предлагаете я добавлю это в службу или javascript? – BeepBoop

+0

i должен быть более понятным, добавить заголовок управления доступом к ответу службы – Rafay

+0

Извините, я обновил свой вопрос, чтобы включить код из моей службы. Я буквально просто возвращаю строку из своей функции. Я не уверен, где я должен возвращать ответ, который вы упомянули (Я очень новичок в службах WCF, это мой первый) – BeepBoop