是的,JavaScript可以發送POST請求到任意的Web服務器。如果您擁有對servlet的控制權,您可以通過設置access-control-allow-origin
屬性來避免所有跨站點腳本限制。
AJAX是Web社區中的一個術語,指的是JavaScript + HTTP請求。我向MDN推薦這個AJAX tutorial。我也推薦jQuery's AJAX library。
即使服務器設置正確,某些版本的Internet Explorer也會給您帶來麻煩。這裏有一個JS功能,我使用支付所有的瀏覽器:
/**
* Wraps jQuery's AJAX, adds X-Domain support for IE
*/
function xDomainAJAX (url, settings) {
if ($.browser.msie && parseInt($.browser.version, 10) >= 8 && XDomainRequest) {
// use ms xdr
var xdr = new XDomainRequest();
xdr.open(settings.type, url + '?' + $.param(settings.data));
xdr.onprogress = function() {};
xdr.onload = function() {
settings.success(xdr.responseText);
};
xdr.onerror = settings.error;
xdr.send();
} else {
// use jQuery ajax
$.ajax(url, settings);
}
}
聽起來像它會看起來像跨站腳本給我。 – duffymo
我不確定你爲什麼強調「不同的servlet」。這裏沒有火箭科學。通常使用ajax應該這樣做。難道你不是真的意味着servlet實際上運行在不同的域上嗎?例如。 JavaScript在foo.com上運行,servlet在bar.com上運行?在這種情況下,跨站點腳本的答案確實適用。否則,只適用標準的ajax手段。 – BalusC