分类目录归档:互联网

用nginx测试AJAX接口

自从有了evernote后,好久没有更新这里了。打算日后把evernote记录的知识点陆续的搬上来。开始正题。

最近在做一个关于新闻推荐的内部项目,和之前的一些项目一样,也是富前端的应用,基本上都是后台提供数据接口,由前端这边完成页面的渲染。这次后台的接口多为json格式的。对比jsonp格式的数据,json格式只能用XHR的方式请求获取数据,在开发的时候就造成了跨域的问题。比如在开发时,页面的测试地址是htttp://localhost/page.html,而后台提供的接口地址是http://iread.ws.netease.com/article/reply,localhost和iread.ws.netease.com是两个不同的域,虽然高级的浏览器提供了XHR 2去解决跨域问题,但是老版本的IE不支持这个API,如果用XHR 2去实现的话,IE在开发时是没有办法测试到的,而且项目上线前还要将XHR 2改为XHR,这样就造成了不必要的工作量。最理想的解决办法就是在localhost做后台代理,将http://localhost/article/reply代理到http://iread.ws.netease.com/article/reply,这样我在请求数据接口的时候,只需要写相对路径就好了。比如在这个例子中,我直接请求/article/reply,在测试环境中就是请求http://localhost/article/reply,正式环境中变成请求http://iread.ws.netease.com/article/reply

做后台代理,最方便的就是用nginx了,只需要几行代码就能满足需求,配置的代码如下:

server {
	listen	*:80;

	location / {
		ssi	on;
		autoindex on;
		root  "/Users/Michael/制作/个性化新闻推荐/source";
		index  index.html index.htm;
	}

	location /article/reply {
		proxy_pass "http://iread.ws.netease.com/article/reply";
	}

}

这样我们请求http://localhost/article/reply的时候通过nginx的帮助就能从后台取到正确的数据了。但是问题又来了,http://iread.ws.netease.com/article/reply是一个需要cookie的接口,这就意味着nginx代理的时候需要将浏览器的cookie一同发送过去。浏览器向服务器发送cookie的时候,其实就是发送一个名为Cookie的request header。我的做法是打开浏览器,切换到firebug的“网络”选项卡,然后打开http://iread.ws.netease.com/article/reply,在“请求头信息”中将Cookie的值复制下来,然后加到nginx的配置节中,如下:

location /article/reply {
	proxy_pass "http://iread.ws.netease.com/article/reply";
	proxy_set_header Cookie 你刚才复制的内容;
}

【转】Google Buzz高级使用技巧

转载自月光博客
本文链接地址:http://www.williamlong.info/archives/2102.html

Google BuzzGoogle Profiles的关联非常紧密,从而让很多不熟悉Google产品的用户对于某些操作并不熟悉,这里就介绍几个较不常用的Buzz技巧,供大家参考。

添加自定义网站连接

当用户在Google Profiles中创建个人资料以后,Google会自动提供一些建议的链接,用户可以选择在自己的公开个人资料中显示其中的一个或多个链接。除了Google自己的产品之外,其他网站或博客的链接都可以通过Google Webmasters来实现验证。

比如用户想要在Google Buzz中添加自己博客的连接,使得Buzz可以自动发布自己的博客的文章,那么就可以先在Google Webmasters中验证自己的博客地址,验证的方法有meta法和上传指定html文件法,当用户验证网站成功之后,Google就会认为这个网站属于该用户管理,之后Buzz的连接网站界面就会出现该网站链接,用户就可以把Buzz连接到这个网站上了。

删除Google Profiles中的链接

对于企业网站来说,一个网站的管理员通常需要多个用户来管理,Google Webmasters支持一个网站的多个用户管理,即几个不同的用户可以分别通过验证并管理这个网站,但这也带来一个问题,如果已验证了网站所有权的员工离开了公司,那就存在一个非法管理网站的问题,需要将该用户的权限删除。

Google Webmasters提供了用户删除自己的验证,也可以删除其他人的验证,在Google Webmasters删除一个用户操作,被Google隐藏的非常好,删除的方法是,在主页上,该网站的后面,点“已验证”链接,在“已通过验证的用户”中的操作里,点“删除验证记录”即可删除自己或其他人对该网站的验证。

全文邮件发布

我们知道,在自己的Gmail中发一个邮件到 buzz@gmail.com 中,就可以通过邮件更新自己的buzz,但是,这个方法只是将邮件的标题更新到buzz中,邮件内容并不更新,因此并不适合较长文字的全文更新。

我这里想到一个方法可以实现全文邮件发布,先在 Google Blogger 上申请一个博客,然后在“设置”-“电子邮件和移动博客”-“电子邮件发布地址”中设置一个邮件发布信箱,接着在 Google Webmaster 中验证此博客,并在Buzz中连接此Blogspot,这样,就可以通过发送电子邮件到指定的信箱,而发布全文方式的Buzz了。