bookmarklet中的Ajax请求
我想构建一个bookmarklet,它允许我将当前页面的URL发送到一个php文件,获得确认响应并将其显示给用户 我尝试了几种方法,只有一种方法有效,它成功地发送了请求,但没有显示响应bookmarklet中的Ajax请求,ajax,jquery,bookmarklet,Ajax,Jquery,Bookmarklet,我想构建一个bookmarklet,它允许我将当前页面的URL发送到一个php文件,获得确认响应并将其显示给用户 我尝试了几种方法,只有一种方法有效,它成功地发送了请求,但没有显示响应 javascript: (function (e, a, g, h, f, c, b, d) { if (!(f = e.jQuery) || g > f.fn.jquery || h(f)) { c = a.createElement("script"); c.ty
javascript: (function (e, a, g, h, f, c, b, d) {
if (!(f = e.jQuery) || g > f.fn.jquery || h(f)) {
c = a.createElement("script");
c.type = "text/javascript";
c.src = "http://ajax.googleapis.com/ajax/libs/jquery/" + g + "/jquery.min.js";
c.onload = c.onreadystatechange = function () {
if (!b && (!(d = this.readyState) || d == "loaded" || d == "complete")) {
h((f = e.jQuery).noConflict(1), b = 1);
f(c).remove()
}
};
a.documentElement.childNodes[0].appendChild(c)
}
})(window, document, "1.3.2", function ($, L) {
$.get("http://mysite.com/recommend.php", {
url: encodeURIComponent(document.URL)
}, function (data) {
if (data.error) {
alert('Looks like someone else added this site just before you did, Thank you though!');
} else {
alert(document.URL + ' successfully added!');
}
}, 'json');
});
不管怎样,我能让它工作吗?我在某个地方读到了关于源站策略的内容——是否有其他方法可以实现我正在尝试的目标——目标是构建一个bookmarklet,与服务器通信并显示响应。您不能跨域使用标准Ajax。浏览器强制执行“相同域”策略。您必须使用JSONP 在本页中搜索“jsonp”,开始了解如何将jQuery与jsonp结合使用: 一个更简单的解决方案可能是:
var recURL='http://mysite/com/recommend.php?url='
+ encodeURIComponent(document.URL);
document.body.appendChild(document.createElement('script')).src=recURL;
expndtw-1.php应该返回Javascript代码,如:
alert(document.URL+'successfully added!')代码>不能跨域使用标准Ajax。浏览器强制执行“相同域”策略。您必须使用JSONP
在本页中搜索“jsonp”,开始了解如何将jQuery与jsonp结合使用:
一个更简单的解决方案可能是:
var recURL='http://mysite/com/recommend.php?url='
+ encodeURIComponent(document.URL);
document.body.appendChild(document.createElement('script')).src=recURL;
expndtw-1.php应该返回Javascript代码,如:alert(document.URL+'successfully added!')代码>