Tôi đang cố gắng cho phép yêu cầu POST từ ứng dụng javascript của tôi được lưu trữ tại máy chủ cục bộ: 80 vào dịch vụ WCF REStful được lưu trữ tại một cổng khác, nhưng bằng cách nào đó nó không hoạt động. Tôi đã thử thêm thuộc tính tùy chỉnh vào tiêu đề, cũng như thêm thuộc tính tùy chỉnh theo phương thức JSONData
của dịch vụ của tôi nhưng tôi vẫn nhận được '405 Phương thức không được phép' trong phản hồi của tôi. Cách tiếp cận thích hợp ở đây là gì?Cách thêm hỗ trợ miền chéo vào dịch vụ WCF
Đây là giao diện của tôi:
namespace RestService
{
public class RestServiceImpl : IRestServiceImpl
{
#region IRestServiceImpl Members
public string JSONData()
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
return "Your POST request";
}
#endregion
}
}
và mã dịch vụ:
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Web.Script.Services;
namespace RestService
{
[ServiceContract]
public interface IRestServiceImpl
{
[OperationContract]
[ScriptMethod]
[WebInvoke(Method = "POST",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "export")]
string JSONData();
}
}
Và cuối cùng là cấu hình:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<services>
<service name="RestService.RestServiceImpl" behaviorConfiguration="ServiceBehaviour">
<endpoint address ="" binding="webHttpBinding" contract="RestService.IRestServiceImpl" behaviorConfiguration="web">
</endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehaviour">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="web">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
Sẽ là một câu hỏi hay nếu bạn mô tả những gì "nhưng bằng cách nào đó nó không hoạt động" có nghĩa là. –
Tôi đã cập nhật mô tả. –