javascript - Ajax 不适用于 Android 谷歌浏览器

标签 javascript jquery ajax twitter-bootstrap

我的 HTML 代码:

<form id="form" style="border: 2px solid white; padding: 20px;">
            <div class="form-group">
                <label for="username">Name</label>
                <input type="text" class="form-control" id="username" placeholder="Name" name="name" required>
            </div>
            <div class="form-group">
                <label for="username">Registration Number</label>
                <input type="text" class="form-control" id="regno" placeholder="Registration Number" name="regno" required>
            </div>
            <div class="form-group">
                <label for="username">Phone Number</label>
                <input type="text" class="form-control" id="phone" placeholder="Phone Number" name="phoneno" required>
            </div>
            <div class="form-group">
                <label for="email">Email</label>
                <input type="email" class="form-control" id="email" placeholder="Email" name="email" required>
            </div>
            <button  class="btn btn-primary sub_btn" id="submit" style="width: 100%; background-color: blue;">Subscribe</button>
        </form>

我的 Javascript/Jquery 代码:

    $('#form').on('submit', function(event){
event.preventDefault();
var phoneno = $('#phone').val();
if(phoneno.length > 12 || phoneno.length <10){
    swal("Enter a valid phone no!!");
    $('#form')[0].reset();
    return false;
}
var regno = $('#regno').val();
var patt = /^([0-9]{2})([a-zA-Z]{3})([0-9]{3,4})$/;
if(!patt.test(regno))
{
    swal("Enter a valid registration number");
    $('#form')[0].reset();
    return false;
}


var name = $('#username').val();
var email = $('#email').val();
if(name.length==0 || email.length==0){
    swal("Enter all fields");
    $('#form')[0].reset();
    return false;
}
var data = {
        'name'   : $('#username').val(),
        'email'  : $('#email').val(),
        'phoneno': $('#phone').val(),
        'regno'  : $('#regno').val()
};
console.log(data);
$.ajax({
    type: "POST",
    url: "https://reversecodingsubs.herokuapp.com/subs",
    data: data,
    cache: false,
    dataType: "json", 
    encode: true,
    beforeSend: function() {
        $('.sub_btn').text('subscribing...');
    }
}).done(function(data) {
    swal("Great job!", "You are successfully registered!", "success")
    $('.sub_btn').text('subscribe');
    $('#form')[0].reset();
});
return true;

});

除了 Android 中的 google chrome 之外,所有其他 PC 浏览器和移动浏览器都工作正常?到底是什么导致了 android chrome 的问题? 我尝试不使用缓存: false,但没有成功, 我尝试将方法和操作属性放在表单上,​​然后在移动 Chrome 中也不起作用。 我在清除浏览器的缓存和cookie后尝试了所有这些,但仍然不起作用。

最佳答案

当我检查我的 android google chrome 浏览器的控制台时,我遇到了问题,它向我显示了错误说明,

you can't make a request over HTTP if another script inside it is being requested at https

(但不是类似的声明)。然后它显示:

$ is not defined

然后我检查了 jquery CDN 正在 HTTP 上请求,当我将其更改为 https 时,一切正常。

关于javascript - Ajax 不适用于 Android 谷歌浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48199752/

相关文章:

javascript - 在 AJAX 响应上过滤/使用选择器

javascript - 自动刷新div内容,由jquery加载包含ajax调用

javascript - 如何使用发布请求从浏览器上传图像 Instagram

javascript - 使用来自元素 id 属性的名称创建对象

javascript - 为什么引入了新的 JSLint 错误 "use spaces, not tabs"和 "unsafe character"?

Javascript对数组进行两次排序

jquery - 显示数组中的某个元素?

javascript - 带选项的 Coffeescript 函数

javascript - 使用 javascript/jQuery 搜索表格并在单击按钮时返回正确的表格行以及 'search' 栏的内容

javascript - 在 ajax 调用 Promise 中的 .done() 函数之前使用回调函数