通过使用代理实现此目标的唯一正确方法是吗?我正在研究clicktail克隆(网络用户交互和鼠标跟踪分析),到目前为止,我的脚本是一个脚本,它将跟踪所有用户交互并将其发布到我的服务器并保存到数据库,但是问题是如果将此脚本添加到将在另一个域上的客户端,则由于跨域脚本限制,Ajax发布将失败。
通过阅读有关内容,有一些骇客,但我很想避免它们。看来代理是解决此问题的唯一方法。但这反过来给我带来了一个更大的问题,因为任何希望使用我的clicktail克隆的客户端都必须在其上添加JavaScript之外还必须设置代理。对于拥有PHP网站的网站站长来说,这将是直接的,因为我可以提供脚本,而他们只是将其放在服务器上,但是对于.net网站,他们将不得不将其包含在解决方案中并重新编译,也许我可以提供一个dll,但即使这样也必须引用。
我一直在阅读有关此HTML 5 window.postMessage
->和此jquery插件http://benalman.com/projects/jquery-postmessage-plugin/的信息,看起来不错,我认为我无法使用它使用iframe来回放捕获的用户互动,但我做不到(至少我无法看到如何)解决跨域AJAX发布问题。
如果您遇到我的情况,可以发表您可能的解决方案吗?
最佳答案
在您的情况下,似乎跨域POST确实可行。
在此How do I send a cross-domain POST request via JavaScript?讨论了使用Access-Control-Allow-Origin配置接收服务器的可用性。
之后,您可以通过jQuery执行POST:
$.ajax({
type: 'POST',
url: 'https://to.com/postHere.php',
crossDomain: true,
data: '{"some":"json"}',
dataType: 'json',
success: function(responseData, textStatus, jqXHR) {
var value = responseData.someKey;
},
error: function (responseData, textStatus, errorThrown) {
alert('POST failed.');
}
});
祝好运!
关于javascript - Ajax POST到另一台服务器-克服跨域限制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5920574/