Ajax代码无法在移动设备上运行

时间:2017-04-22 00:00:48

标签: javascript jquery ajax api mobile

此代码在桌面浏览器上运行良好,也适用于移动应用程序

function submitSN()
{
    var data = [];

    var eles1 = document.getElementsByClassName('chip');

    for (var i = 0 ; i < eles1.length ; i++)
    {
        data.push(eles1[i].innerText.substring(0,eles1[i].innerText.length-5));
    }

    profile.skills = data;
    profile.uid = uid;

        $.ajax({
        url: '/postprof',
        type:'POST',
        data: profile,
        dataType: 'json',
        headers: new Headers({ "Content-Type": "application/json" })});
        $("body").html("<h1 style='text-align:center;padding:4%;'>Done, Return to your messenger now!</h1>");
}

但是它不会在移动浏览器上发送Ajax调用,我的意思就是

$.ajax({
    url: '/postprof',
    type:'POST',
    data: profile,
    dataType: 'json',
    headers: new Headers({ "Content-Type": "application/json" })});

此代码适用于普通桌面浏览器,但无法在我的移动浏览器上运行,如何解决此问题?

3 个答案:

答案 0 :(得分:1)

您不需要定义任何标头,jQuery ajax的默认设置无论如何都在处理json。

这是一个非常基本的headers请求,使用jQuery ajax发送一个简单的对象,您不需要定义dataTypecontentTypeheaders

let custom_object = {
    name: 'Ahmed',
    age: 22
}

$.ajax({
    type: 'POST',
    url: 'YOUR_URL',
    data: custom_object,
    success: function(){
        cosnole.log('Done: ', e)
    },
    error: function(e){
        console.log('ERROR! ', e);
    }
});

默认值为:

  • {}dataType
  • Intelligent Guess (xml, json, script, or html)contentType
  • application/x-www-form-urlencoded; charset=UTF-8onView(withId(R.id.mainContent)).check(matches(withText("Hello world!")));

来源:http://api.jquery.com/jquery.ajax/

答案 1 :(得分:0)

失败的行可能是这样的:

headers: new Headers({ "Content-Type": "application/json" })});

您可能正在测试没有Headers构造函数的iPhone / iOS / Webkit。

您可以阅读更多相关信息here

答案 2 :(得分:0)

Headers API仅适用于某些浏览器。

查看browser compatibility

试试这个: contentType: "application/json",

$.ajax({
    url: '/postprof',
    type:'POST',
    data: profile,
    dataType: 'json',
    contentType: "application/json",
 });