Saya memiliki panggilan ajax jquery yang saya lakukan lintas domain menggunakan jsonp. Kodenya adalah:

$.support.cors = true;
$.allowCrossDomainPages = true;
$.ajax({
    dataType: 'jsonp',
    type: "POST",
    url: "http://my-url.com/getSearchResults.php",
    data: { 
        userId: localUserId, 
        searchLocation: decodeURIComponent(searchLocation), 
        searchCategory: searchCategory 
    }
})
.done(function(items) {
    alert(items);
});

Ketika saya menjalankan ini di browser normal, saya mendapatkan kotak peringatan [objek objek] sebagaimana mestinya, tetapi ketika saya menjalankannya di browser seluler Android, kotak peringatan itu mengembalikan kosong.

PHP saya berisi tajuk untuk mengizinkan lintas domain.

Resonansi sebenarnya dari panggilan ajax (objek) adalah seperti ini:

[{
    "address": "London Road, Brighton, United Kingdom",
    "details": {
        "id": "1",
        "name": "kav 2",
        "logo": "user_content\/1167327737_images.jpg",
        "favorite": "0",
        "feedback": 0
    }   
}];

Saya mencoba mencari solusi selama 3 hari terakhir. Adakah yang bisa membantu?

1
Digicom 1 Juni 2015, 11:57
Coba tambahkan fungsi .error? Mungkin itu akan memberi tahu Anda lebih banyak tentang itu.
 – 
Jeremy Thille
1 Juni 2015, 12:43

1 menjawab

Jawaban Terbaik

Butuh beberapa saat tetapi saya menemukan solusinya.

Meskipun panggilan Ajax dari tipe data jsonp selalu dikirim dengan $_GET tidak peduli apa yang Anda masukkan ke dalam jenisnya, Dengan browser android, jika Anda memasukkan jenis POST mereka akan dikirim sebagai $_POST.

Setelah saya mengubah jenisnya menjadi GET semuanya mulai berfungsi kembali.

1
Digicom 1 Juni 2015, 15:45