2017-01-27 20 views
0
  • 我是新來的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) { }); 
}; 

回答

0

嘗試加入標題 - 方法:

<add name="Access-Control-Allow-Methods" value="GET, PUT, POST, OPTIONS" /> 

或安設this plugin

+0

我加了這個頭,並沒有成功 –

+0

嗨@ambussh,你能幫助我更多,因爲我使用類庫項目,並在此 做出RESTful服務我曾嘗試添加使用owin啓動類startup.cs但它不是射擊。 –

0

添加到您的網絡配置文件:

<httpProtocol> 
    <customHeaders> 
    <add name="Access-Control-Allow-Origin" value="*"/> 
    <add name="Access-Control-Allow-Headers" value="X-Requested-With,Content-Type, Accept" /> 
    </customHeaders> 
</httpProtocol> 

你也可以這樣定義你的方法這個:

[WebInvoke(Method = "*" 

這樣你就可以覆蓋各種要求。

+0

添加* –

+0

後,沒有運氣嗨,你能幫助我更多,因爲我正在使用類庫項目,並在這 作出了寧靜的服務我已經嘗試使用owin啓動類添加startup.cs,但它不是射擊。 –

相關問題