簡體   English   中英

請求的資源不支持http方法'get'。 跨域

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM