2013-05-31 6 views
5

Şu anda bir chrome uzantısına sahibim ve şu anda web istemi API'sını kullanıyorum. Sorum şu ki, bloke ve değiştirilebilmesi webADquest API ile AJAX isteğini değiştirmek mümkün mü? Eğer değilse, bunun etrafında bir iş var mı?WebRequest'i kullanarak AJAX isteklerini engelleyin ve değiştirin

PS. HTML parçalarını bir GMail e-postasına enjekte etmeye çalışıyorum ancak şu ana kadar bulduğum tek çözüm, tüm farklı türdeki kompozisyonları tespit etmeyi ve daha sonra HTML'mi enjekte etmeyi içeriyor. Bu yöntem, kararsız dışında, ekleme işleminin yalnızca% 70'i dışında çalışır.

Daha iyi bir yol varsa, bana bildirin, teşekkürler!

DÜZENLEME herkes ihtiyacı varsa birkaç alternatif çözümler Bulunan

.

    bir olayı yayınlayan varsayılan XMLHttpRequest.send yöntemini geçersiz kılar
  • . Gönderilmeden önce isteği değiştirebilirsiniz. varsayılan form yöntemini önerebilir ve tüm formu müdahale
  • geçersiz kılma gönderildiği anda önce açıkça xmlhttprequest için type property for chrome.webRequest ayarlayarak XMLHttpRequests tespit edebilmesine karşın
+0

Ayrıca ehre: https://stackoverflow.com/q/23561805/632951 – Pacerier

cevap

2

Bu özelliği isteyen bir kromda open issue var. Yakın zamanda accessing the request body yeteneğini uyguladılar, bu yüzden de bunu ekleyebilecekleri bir şans olabilir. this answer'da açıklandığı gibi XMLHttpRequest nesnesini değiştiren tekniklerle daha iyi şansınız olabilir. Here, AJAX yanıtının yakalandığı ve değiştirildiği adım adım çalışmanız var.

+0

Bu mümkün olmadığına dair bir his vardı, gerçekten umarım yakında uygularlar, ancak harika bağlantılar için teşekkürler, ilginç bir okuma olmalı! – 1337holiday

+0

@rsanchez, Ancak soru sorumlusu sadece engellemek istiyor değil mi? hangisi yapılabilir? – Pacerier

2

(form verilerini değiştirmek), yalnızca engellemek mümkün olacak gönderdiğinde eşzamansız istekler.

Senkronize XMLHttp Uzantılarınızdan yapılan sorgulamalar, kilitlenmeyi önlemek için olay işleyicilerini engellemekten saklı tutulur. Ayrıca webRequest API'si, yalnızca manifestinizin permissions alanında tanımlanan URi desenlerine yapılan çağrıları gösterir. WebRequest api kullanarak yanıt gövdesine erişmenin veya değiştirmenin bir yolu yoktur.

+0

Doğru, ben zaten belirttiğiniz gibi mail.google.com, özellikle XMLHttpRequest gelen istekleri bloke ediyorum. Ancak, bu isteklerin yanıtını web sorguları ile değiştirmek olasıdır? Denedim ve desteklenen bir şey gibi görünmüyor. – 1337holiday

+0

Anlama, yalnızca blockHeaders nesnesini engelleme yöntemini kullanarak değiştirebilmenizdir. Tam istediğiniz denetim türü için bekleyen bir özellik isteği var. Https://code.google.com/p/chromium/issues/detail?id=104058 – QFDev

+0

Anahtar bölüm "Senkronize XMLHttpRequests ** uzantısı * * ", böylece diğer XHR'leri diğer kaynaklardan işleyebilirsiniz. Ve soru, sayfanın kendi isteklerini açıkça ortaya koymaktadır. – Xan