2017-04-22 8 views
0

dieser Code perfekt auf dem Desktop-Browser funktioniert, und funktioniert auch auf der mobilen AnwendungAjax-Codes nicht auf dem mobilen Gerät arbeitet

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>"); 
} 

aber nicht die Ajax fordert den mobilen Browser zu senden, bedeuten, dass ich diesen Code genau

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

dieser Code funktioniert auf dem normalen Desktop-Browser, aber nicht auf meinem mobilen Browser funktionieren, wie Sie dieses Problem beheben?

+0

Haben Sie die URL? –

+0

Werfen Sie einen Blick auf diese Website, vielleicht hilft es Ihnen mit Ihrem Problem https://www.tutorialspoint.com/ajax/ajax_browser_support.htm –

+0

Phone Gap? Sie benötigen COORS Access auf Ihrer Server-Seite, da sich diese App nicht in Ihrer Domain befindet. – PHPglue

Antwort

1

Sie brauchen keine Header zu definieren, werden die Standardeinstellungen für jQuery Ajax sowieso json Handhabung.

hier ist eine sehr einfache POST Anfrage mit jQuery Ajax, das einem einfachen Objekt senden, brauchen Sie nicht headers, dataType oder contentType zu definieren.

 
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); 
    } 
}); 

Es Standardwerte ist:

  • headers: {}
  • dataType: Intelligent Guess (xml, json, script, or html)
  • contentType: application/x-www-form-urlencoded; charset=UTF-8

Quelle: http://api.jquery.com/jquery.ajax/

+1

Es hat gut funktioniert, ich akzeptiere diese Antwort –

0

Die Linie, die nicht wahrscheinlich diese:

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

Sie testen wahrscheinlich auf einem iPhone/iOS/Webkit, die keine Headers Konstruktor hat.

Sie können mehr lesen über sie here

+0

Ja, es ist richtig 100%, ich testen von Iphone IOS –

0

Die Header-API nur in bestimmten Browsern ist.

Werfen Sie einen Blick auf die browser compatibility Tabelle

diese stattdessen versuchen: contentType: "application/json",

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

hat leider nicht funktioniert –

+0

Haben Sie versucht, auf BrowserStack oder den iPhone-Debugger? –

+0

Ich teste auf dem normalen Safari Browser, hier ist die URL, um es zu überprüfen http://urlgone.com/3bad68/ –

Verwandte Themen