我有兩個應用程序。第一個是WCF服務,第二個是asp.net MVC 3應用程序。
在WCF應用程序,我有一個接口:ajax從asp.net調用wcf mvc
[ServiceContract]
public interface IService1
{
[OperationContract]
string HelloWorld(string personName);
}
和A類:
public class Service1 : IService1
{
public string HelloWorld(string personName)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
return serializer.Serialize("Hello " + personName);
}
}
現在,在asp.net的MVC應用程序,我想呼籲通過Ajax這個方法:
<script type="text/javascript">
var personName = "John";
var dataIn = '{' + '"input":"' + personName + '"}';
$.ajax({
url: "http://localhost:7215/Service1.svc/HelloWorld",
type: "POST",
contentType: "application/json; charset=utf-8",
data: dataIn,
dataType: "json",
success: function (data) {
var object = JSON.parse(data.d);
if (object.Error == '') {
$("#response").html(object);
}
},
error: function (error) {
alert("Error: " + error);
}
});
</script>
但在Firebug中出現錯誤:400 Bad Request
。
如何正確調用HelloWorld
方法? 謝謝。
哇,很好的答案。十分感謝。我還有一個問題。在ASP.NET MVC應用程序中有幾個方法可以從外部win(而不是我的)應用程序(通過tcp/ip)檢索數據。現在我想將這些方法移動到WCF服務,還有其他方法(發送電子郵件消息和現在在單獨線程中運行的其他處理)。這是我第一次使用Web服務/ wcf。而且,有什麼更好的方式來做到這一點:wcf,web服務,贏得服務?謝謝 – user1260827
我建議發佈這個作爲一個單獨的問題 – VJAI
找到這個答案有助於讓自己與JavaScript + WCF滾動。有一件事:'dataIn' JSON值對我來說不起作用。我需要用'var dataIn =「input =」+ personName;'替換它,並取出'contentType:...'。這得到了它返回JSON的點,但仍然需要查詢字符串輸入。 –