var strBaseUrl = "http://service.mydomain.com/MyserviceHost/stage/";
function Login() {
debugger;
var LoginInfo = JSON.stringify({ "strAccountName": "#####", "strPassword": "######", "strDeviceId": "################" });
var strUriGet = strBaseUrl + "OneviewClient.svc/Login";
$.ajax({
type: "POST",
url: strUriGet,
data: LoginInfo,
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
processData: true,
success: function (data, status, jqXHR) {
debugger;
//alert("success..." + data);
console.log("success..." + jqXHR.responseText);
$("#labelToken").text(data.loginResponse.strToken);
},
error: function (xhr, status, exception) {
debugger;
console.log(xhr.responseJSON);
console.log(xhr.responseText);
}
});
}
以上ajax調用與http://service.mydomain.com/MyserviceHost/stage/ 我已經寫了重寫模塊WCF服務的web.config重寫所有的HTTP reuqest到https製造。 當我試圖在瀏覽器地址中調用http鏈接時,它簡單地重定向到https,但在ajax中稱它不會(它引發網絡錯誤),有沒有我錯過的東西?URL重寫不工作的Ajax請求從http WCF服務到https
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" matchType="Pattern" pattern="off" ignoreCase="true" negate="false" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/MyserviceHost/stage/{R:1}" redirectType="SeeOther" />
</rule>
</rules>
</rewrite>
我從chrome發現第一個請求是作爲Cors Preflight發送的,因爲wcf使用安全模式傳輸進行配置,因此它被中止。預檢後的實際請求未被髮送。 – kbpanchal