向HTTP服务器发送GET请求;不要在意别人的反应
Send GET Request to HTTP Server; don't care about the response
我正在尝试使用$.get()联系服务器。我不在乎回应。我的目的是记录一些关于用户行为的数据(他们点击了什么,等等)。当用户单击某项内容时,$。Get被这样调用:
$.get(
"http://www.some-server.com/log.txt?click=1",
function (data)
{
},
"text"
);
服务器相应地处理get请求。当函数执行时,我得到以下错误:
XMLHttpRequest cannot load ... is not allowed by Access-Control-Allow-Origin.
如果我将数据类型更改为JSON,我不会得到该错误,但当jquery回调试图评估日志服务器的响应为JSON时,它告诉我"whateverwasreturned"未定义。我无法更改日志服务器上的任何内容
使用"跟踪像素"技术:
<img src="http://www.some-server.com/log.txt?click=1" height="1" width="1">
只需在需要时将HTML插入DOM。
如果您使用的是jquery,只需添加一个script标签,以避免同源策略问题:
$('body').append('<script src="http://www.some-server.com/log.txt?click=1"></script>');
不确定你是否能…如果您正在与自己的服务器通信,那么告诉JS将响应视为明文而不尝试解码它就很简单了。但是一旦你在做JSONP,那么jquery实际上只是构建一个<script src="http://otherserver.com"></script>
块并插入它,这意味着这意味着远程服务器必须用有效的JS代码响应。
另一种选择是加载包含json p url的图像。图像本身将被"破坏",但仍会触发GET请求。
由于同源策略不能将ajax查询发送到其他域(然后脚本执行)但你会发现,可以使用JSON但只有在服务器支持的情况下(服务器基本上是缓存JSON) $.getJson(..)
是有办法的调用$.ajax(..)
更简单一些
支持jsonp的服务器端示例:http://www.geekality.net/2010/06/27/php-how-to-easily-provide-json-and-jsonp/
您可以继续使用JSONP,但使您的log.txt
返回一个空JSON对象:{}
.
您可以使用纯ajax调用:
$.ajax({
url: 'http://www.some-server.com/log.txt?click=1',
dataType: 'jsonp',
crossDomain: true,
success: function(data) { /* do nothing */ }
});
- 使用JSP从服务器检索和显示图像
- 如何使用skip参数使用angular ui引导进行服务器端分页
- 客户端服务器REST API captcha实现
- 正在将base64 jpeg从input-type=file上传到服务器
- Webpack开发服务器和React服务器端渲染
- 提示使用服务器端事件处理程序激活JavaScript
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 如何使用Socket.io将命令从客户端发送到服务器
- jQuery blueimp文件上传:将N-1个文件上传到IE中的服务器
- 使用jasmine模拟对服务器的调用
- 如何轻松地将服务器端变量从Java代码转移到客户端代码
- 从客户端获取修改后的对象,并将其与服务器上的原始对象组合
- 通过ajax将坐标传递到php服务器端,并在处理后检索到javascript
- 如何使用Javascript将空数组发送到PHP服务器
- 如何在HTML中显示服务器对象变量
- 如何配置分析以将数据发送到我自己的服务器
- 我无法使用angularJs($http)访问服务器
- 如何检测第三方广告服务器请求
- 如何:浏览器将JSON发送到服务器
- 向HTTP服务器发送GET请求;不要在意别人的反应