Aynı kökenli ilke -

0 Cevap php

Ben bu popüler bir konu olduğunu biliyorum, ama tamamen kapsamlı olduğunu bir cevap bulmak için henüz ettik.

Ben harita üzerinde müşterilerimizin konumunu (ya da bunların bir alt kümesi) araziler kendi web sitesinde, bir Google Map yerleştirmek için bizim müşterileri 'için basit bir yol oluşturmak için çalışıyorum. Müşteriler (Google'ın başına Örneğin gibi) bir PHP komut dosyası tarafından on-the-fly XML dönüştü MySQL veritabanında. Bu web siteme üzerinde çalışıyor, ama başka bir web sitesinde çalıştığınızda başka bir alanda olduğu gibi XMLHttpRequest PHP bakmak için izin verilmez.

Ben sadece orijinal etki PHP dosyasını okur diğer etki başka bir PHP dosyasını yazarak bu engelleyecek olabilir. Ama tüm müşterilerimize PHP kendi sunucuları üzerinde çalışan olacak. Ben JavaScript kullanarak bizim veritabanından XML sonuç herhangi bir yolu var mı?

Birkaç nokta:

  1. XMLHttpRequest yapar JavaScript hala our sunucusu üzerinde oturuyor - müşterilerimizin bir komut dosyası etiketi bağlantı verilecektir. Ben bu yeterli olabileceğini düşündüm, ama (zaten Chrome, göre) 'kökenli' hala alan # 2 olarak görülüyor

  2. Bu harika: Ben o zaman IE, ancak başarısız olur XMLHttpRequest mutlak başvuru (örn. request.open ('GET', 'http://mydomain.com/api/foo.php', true)) kullanıyorsanız Ben bir göreli başvuru ('/ api / foo.php') kullanın eğer çalışacaktır.

  3. I don't know enough about it, but could I use JSON? I've seen: 'script src="http://..../someData.js?callback=some_func"' but don't know how, I would make 'someData.js' look like JSON? (I'm thinking very much in terms of functions, which probably is incorrect?).

  4. I've tried adding: header("Access-Control-Allow-Origin: *"); to the top of the PHP that outputs the XML, but it's not really doing much that I can tell!

  5. Ben müşterinin sunucuda bir PHP sarıcı kullanırsanız, bir cURL isteği kullanmanın avantajı basit file_get_contents veya fopen doğrusu, ne var?

Maalesef, birçok soru, ancak herhangi bir rehberlik büyük mutluluk duyacağız.

Massive teşekkürler,

Mat

0 Cevap