- 我是新來的WCF RESTful服務和消費在UI的WCF項目服務,並收到以下錯誤*
錯誤1: - 無「訪問 - 控制 - Allow-Origin'標題出現在請求的資源上。因此不允許訪問原產地'http://localhost:2021'。訪問控制允許與WCF服務起源問題
錯誤2: - 預檢響應具有無效的HTTP狀態碼405
我已經做了谷歌,知道這是跨域問題是Chrome。所以我在我的App.Config中添加了以下內容。
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
</customHeaders>
</httpProtocol>
</system.webServer>
並使用以下代碼更改了方法標題。
[OperationContract]
[WebInvoke(Method = "OPTION", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "AddAddressDirectory")]
Task<string> AddAddressDirectory(string aDVM);
而且我用的是SOAP服務
public string AddAddressDirectory(string model)
{
var aDVMObj = JsonConvert.DeserializeObject<AddressDirectoryViewModel>(model);
var result = _directoryServiceClient.AddAddressDirectory(aDVMObj);
var json = JsonConvert.SerializeObject(result);
return json;
}
我打電話來,從angularJs方法。
var _apiPost = function (url, data, success, failure) {
var req = {
url: serviceUrl + url,
method: 'OPTIONS',
headers: {
'Content-Type': "application/json"
},
dataType: "json",
//crossDomain: true,
//processData: true,
data: JSON.stringify(data)
//data: $httpParamSerializer(JSON.stringify(data))
};
$http(req).then(success, function (response) { });
};
我加了這個頭,並沒有成功 –
嗨@ambussh,你能幫助我更多,因爲我使用類庫項目,並在此 做出RESTful服務我曾嘗試添加使用owin啓動類startup.cs但它不是射擊。 –