Ajax URL 在 HTTPS URL 上发布


ajax url post on https url

由于我在我的网站中使用SSL连接,我正在尝试检查用户打开网址(http/https)的端口:

if (isset($_SERVER['HTTPS']) &&
    ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) ||
    isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
    $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
  $protocol = 'https://';
}
else {
  $protocol = 'http://';
}

它非常适合 css 和 js 等外部文件的链接。

但是,通过检查端口,我无法使用 ajax 发布一些内容。

 <input type='submit' value="LOGIN" onclick="return checkLogin()">
        function checkLogin() {
            var cUsername = $('[id$=userEmail]').val();
            var cPassword = $('[id$=userPassword]').val();
            var cartItems = cartItemsToJSON();
            var dataString = "username=" + cUsername + "&password=" + cPassword  + "&cartItems=" + cartItems;
            $.ajax({
                type: "POST",
                url: "<?php echo $protocol; ?>"+location.hostname+" /member/actions/config-login2.php",
                data: dataString,
                cache: true,
                success: function(html) {

当我单击登录时,它不会运行到'config-lgin2.php,但它只在浏览器上显示我的凭据。

想知道我是否在这里错过了什么。请帮忙。提前谢谢。

不要使用完全限定的 URL,请尝试使用相对 URI。

而不是将网址指定为 ....

  url: "<?php echo $protocol; ?>"+location.hostname+" /member/actions/config-login2.php"

指定为,

  url: "member/actions/config-login2.php"

在 AJAX 调用中

如果它不起作用,JSONP 是一个不错的选择来寻找

请查看此帖子