簡體   English   中英

JQuery發布到Tomcat Servlet

[英]JQuery post to a Tomcat Servlet

我正在嘗試將JQuery $.post為Java Servlet。 我將Tomcat服務器集成到Apache中,如果Tomcat服務器與Apache在同一台機器上,則$.post成功。 (Java Servlet接收它)。

如果Tomcat servlet在遠程計算機上並且如果我生成$.post(http://ip:8080/App/MyServlet,...)則servlet不會收到任何內容。

如果我在我的機器上制作一個JQuery $.post ,我就喜歡這個$.post(Myservlet,.....) 如果我嘗試這樣: $.post(http://localhost:8080/App/MyServlet,...)它不起作用。

我應該如何為遠程uri創建一個JQuery $.post

Tomcat Servlet的遠程uri應該如何?

謝謝,

Jquery在瀏覽器(客戶端)中運行,這意味着它受瀏覽器的同源策略的約束,這是一件好事。

這意味着只能對發出ajax請求的頁面域進行GET或POST的ajax請求。

有兩種方法可以繞過該政策。 第一個是讓遠程服務器擔保請求,第二個是偷偷摸摸瀏覽器的同源策略。

因此,如果您可以控制遠程服務器,或者如果管理員確實接受打開服務器/域的請求以發出ajax請求,那么服務器只需要發送以下標頭:

Access-Control-Allow-Origin: your-local-domain.org

瀏覽器返回響應頭,看到請求頁面在上面的列表中,並允許響應通過。

如果您無法控制遠程服務器,則可以采用以下方法來解決同源策略:

  1. 使用參數向本地URL發出ajax請求,並將其傳遞給servlet,並讓該代理腳本返回servlet響應的任何內容。

  2. JSONP(老實說,我仍然很模糊,但是jquery的ajax文檔會進入它)

  3. 腳本注入,您可以利用腳本元素的src不受同源策略限制的事實。

在3中,我認為第一個是最安全,最不誠實,最誠實(可以這么說),但JSONP已成為在jquery中提取跨域請求的簡單方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM