JavaScript 从其他站点获取数据
JavaScript Get Data From Other Site
我对JS相当陌生,有一个问题。是否可以从另一个网站中提取数据以在您自己的网站中使用?例如,假设我有一个 JS Web 应用程序,允许用户输入他们的 Twitter 用户名,然后脚本转到此用户名并查找关注者计数元素并拉出该数字以显示在 Web 应用程序中。我确信有API之类的东西可以做一些特定的Twitter示例,但是我对能够访问其他站点上的数据的一般想法有了更多的了解。怎么能做到呢?当然,如果我的浏览器可以访问所有这些信息,有一种方法,对吧?您是否必须将不可见的iFrame放入应用程序中并使用JS进行搜索?
新手的基本术语来说,这只有在相关网站具有专门设计用于允许外部访问的 API 时才有可能。有时它们很容易理解和设置。
以并非真正设计用于支持的方式访问外部网站的内容已经发生,但这通常是所谓的"黑客攻击"。对于非常基本类型的网站,有时很容易做到,但大多数请求登录信息的网站都禁止这样做。(通过上述 API 除外)。最大的担忧是,如果有人已经在他们的浏览器上登录了Twitter,那么来源可疑的外部网站可能会在您甚至没有明显访问Twitter时自动将不良内容发布到您的帐户。
是的,这是可能的。
最好的方法是将ajax(异步JavaScript和XML)与jsonp(Javascript对象表示法与填充)数据类型一起使用。
要使用此方法,您要连接的服务器应该期待请求,以便它可以使用 jsonp 进行响应(它只是由您在发出请求时定义的回调函数包装的 json 数据)。
过程:
1) 您的代码向其他服务器发出 ajax 请求,向 url 添加回调函数。使用"回调"参数名称非常容易,但服务器可以定义它喜欢的变量名称。
http://other-server-url.com/?callback=myFunction
一个好的和简单的方法是使用jQuery。如果您在 ajax 调用中定义 dataType:"jsonp",jQuery 将处理追加回调的过程,并在您获得响应时执行正确的函数。最好看看jQuery的ajax文档,并阅读一些关于jsonp跨域请求的信息。
$.ajax({
type: "POST",
dataType:"jsonp",
url: "http://other-server.com/",
data: { name: "John", location: "Boston" }
}).done(function( msg ) { // this function will be executed when you get the response
alert( "Data Saved: " + msg );
});
- 此 jQuery 方法仅在参数名称为回调时才有效。如果不是,你应该自己处理,或者更深入地查看文档以了解如何使用 jQuery 进行操作。
2)服务器应该等待这些"回调"参数,并使用jsonp数据格式响应您的请求。它只是由您作为回调传递的函数包装的 json 数据格式。喜欢这个:
myFunction({ json-data });
3) 当你得到响应时,myFunction 函数会自动执行,以 json 数据为参数:
function myFunction(myData) {
console.log(myData); // this will log the data on the browser console
}
我希望我有所帮助。良好的编码。
- Ajax-如何获取数据
- 从键值结构中获取数据,并将其与AngularJS中ng重复的值进行比较
- 从数据库中获取数据并插入JavaScript变量
- 从单击的行上的列中获取数据
- Solr查询以按日期月份获取数据&年
- React路由器服务器端渲染和ajax获取数据
- 使用JavaScript在IE9中获取数据列表选项
- 从json子数组获取数据
- 使用angularjs中的rest调用通过id获取数据
- 正在从ruby应用程序中的数据库中获取数据
- 如何从servlet获取数据到ajax成功
- 从选择下拉菜单中获取数据
- 异步获取数据使用JavaScript同步获取数据
- 从服务器获取数据并在选择控件中使用ng选项无法显示选项
- 如何在Angular.js中循环动态添加Fields并获取数据并将其发送到服务器
- JavaScript-获取数据属性的值返回未定义的值
- 如何从文本区域获取数据并使用javascript进行解密
- 在put方法之前从作用域获取数据
- 事件循环的MEAN.JS setInterval进程(从另一个服务器获取数据)
- 使用ReactJS和Flux架构从服务器获取数据的正确方法是什么