JQuery otomatik PHP ve çapraz site sorununu kullanarak

2 Cevap php

Ben jquery otomatik tamamlama kullanarak görüntülemek için bir metin şehirde / ülkede bir dizi yüklemeye çalışıyorum. Bunu yapmak için, ben metin için otomatik tamamlama takmak ve search.php adında bir PHP rutin diyoruz. ARAMA aynı sunucu üzerinde ise, bu iyi çalışır.

Ben farklı bir sunucuya (bu durumda, bir ASP sunucu) arama çağırmak çalıştığınızda, ben çapraz komut dosyası sorunu nedeniyle sanırım, bir javascript İZNİ İNKAR hatası alıyorum. Sorun hattı ile kaynaklanır

xhr.open (tip, s.url, s.async);

jquery1.3.2 içinde

Bu herhangi bir çözüm var mı?

Herhangi bir yardım için teşekkür ederiz

2 Cevap

Kolay çözüm sunucu çağrı başka bir sunucunun komut üzerinde bir komut dosyası var ve sonra sunucudan sonuçları döndürmektir.


I assume that your PHP and ASP servers run on a different (sub)domain - if so, then you assume correctly that this is a cross-domain scripting limitation as defined by Javascript standards.

As far as I know, there is no pure Javascript solution with good cross-browser compatibility (some browsers may have more relaxed restrictions). In the long run we can all hope this to be resolved by Cross-Origin Resource Sharing which is being defined as part of HTML5:
http://www.w3.org/TR/access-control/

Bu geçici bir çözüm nasıl Yolları today:

  1. ASP sunucudan verileri almak istiyorsunuz Use a server-side proxy script
    You can create a new script on your PHP server (i.e. ASP-Proxy.php) hangi. Bu PHP script.
    Google revealed this very simple implementation doğru çalışmaktadır teyit Search.php dosyası olarak aynı sunucuda bulunan, çünkü sen, çapraz etki alanı sınırlama önlemek için izin verir, ama bir orada Orada daha sağlam ve / veya güvenli komut çok.

  2. Use flash to perform the query
    Flash has its own mechanism for handling cross domain requests, so you can use a small Flash object on your site to serve as a client-side proxy for your jQuery script. I'm not a Flash developer, so someone else will have to advise here:
    http://www.google.com/search?q=flxhr+jquery

    Note that you might need to create a cross-domain policy file in the root of your ASP server for this to work:
    http://www.google.com/search?q=crossdomain.xml