首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >回调函数

回调函数
EN

Stack Overflow用户
提问于 2014-07-27 22:38:00
回答 1查看 51关注 0票数 0

因此,在JavaScript中,当AJAX发送对我发送到服务器的某些数据的响应时,我可以让http请求发起回调,这成功地成为了一个回调函数。我现在正在试验Ruby的OAuth2,我发现回调函数不一样;

我有一个web服务器和facebook应用程序设置,我有一个小的php脚本将当前的URL (例如,包括验证码)写到一个文件中,没有问题。facebook应用程序中的所有设置都已设置,如果我将以下内容放入浏览器的URL中:

代码语言:javascript
复制
http://graph.facebook.com/oauth/authorize?client_id=[my_client_id]&redirect_uri=http://localhost/oauth/callback/index.php

它成功地重定向到该脚本,然后该脚本将授权码写入一个文件,然后我可以使用该文件来获取访问令牌。问题是我只能手动完成这个过程;在ruby中使用Net::HTTP.get(URI(address))命令似乎不能启动php脚本。

你有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2014-07-28 01:56:33

我不知道你为什么要发布你的javascript ajax请求的历史记录,因为它对你的ruby脚本没有影响,顺便说一句,它甚至没有使用回调方法/函数。使用回调函数只是意味着调用某个函数,并将其作为参数传递给另一个函数。当我开始编程时,回调函数这个术语让我非常困惑,在我看来,这个术语应该从行话中删除。

至于ruby脚本,当您在浏览器中手动输入url时,您需要使用Firebug之类的工具来查看浏览器发送给服务器的请求头。如果你在你的ruby脚本中使用相同的头文件,那么它应该可以工作,例如:

代码语言:javascript
复制
req['header1'] = 'hello'
req['header2'] = '10'

或者:

代码语言:javascript
复制
headers = {
  'header1' => 'hello',
  'header2' => '10',
   ...
}

req = Net::HTTP::Get.new(uri.request_uri, headers)
http = Net::HTTP.new(uri.host, uri.port)
resp = http.request(req)

您的浏览器中可能设置了cookie,当浏览器将请求发送到服务器时,它会自动添加到请求标头中。您的浏览器可能会向请求中添加数千个头--其中许多头与您的问题无关。如果你有耐心,你可以试着找出哪个头文件导致你的ruby脚本的请求失败。

另一种选择是使用机械化gem,它将自动处理由ruby脚本发送的请求的cookie和重定向:

http://docs.seattlerb.org/mechanize/GUIDE_rdoc.html

(请阅读ruby部分;如果您使用的是Let's Fetch a Page1.9+,请不要使用require 'rubygems'行)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24982009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档