[英]the requested resource does not support http method 'get'. Cross Domain
我正在尋找解決我的問題的解決方案。 我正在為我的問題找到許多答案,但無法弄清楚。 這是我的問題:我正在嘗試將json文件發送到另一個域(其外部公司具有用於合作公司的Web API),這應該將我發送回一些json(我正在使用MVC WebApps),而不使用控制器。 ..首先,我遇到了跨域問題,我試圖通過編輯Web.config來解決(參見上文)。
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
這沒有幫助。 使用jsonp之后(請參閱下面的jc代碼),此問題已解決。 但是現在我得到“請求的資源不支持HTTP方法'GET'” -Errormsg。
<script>
$("#getprice").click(function () {
$.support.cors = true;
$.ajax({
type: "POST",
asnc: false,
Accept: "application/json",
contentType: "application/json",
dataType: "jsonp",
jsonpCallback: 'localJsonpCallback',
url: "otherdomain.com" + "?callback=?",
data: {
models: [{
toolID: "",
modelReference: "some model.xml",
materialID: $("#materialID").val(),
finishID: $("#finishID").val(),
quantity: $("#quantity").val(),
xDimMm: $("#xDimMm").val(),
yDimMm: $("#yDimMm").val(),
zDimMm: $("#zDimMm").val(),
volumeCm3: $("#volumeCm3").val(),
surfaceCm2: $("#volumeCm3").val()
}],
shipmentInfo: [{
countryCode: $("#countryCode").val(),
stateCode: "",
city: $("#city").val(),
zipCode: $("#zipCode").val()
}],
currency: $("#currency").val()
},
xhrFields: {
withCredentials: true
},
crossDomain: true
})
})
function localJsonpCallback(json) {
if (!json.error) {
alert("läuft");
console.log(json);
} else {
alert(json.Message);
}
}
</script>
在尋找解決方案時,我只為您的控制器找到此[HTTPPOST]信息。 但是我的問題在這里,我不使用控制器作為緩沖區。 我直接將數據從View發送到服務器,然后再發送回。
好的,我知道了! 在未找到直接解決方案之后,我將Controller作為中間設備...將表單數據發送到具有JsonResult Action方法的Controller。 在這種方法中,我通過HttpWebRequest與我的外部Web Api通信,並通過Httpreponse將json數據發送回我的視圖。
哦,我,哦,我的天哪...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.