在我的应用中,我允许用户在嵌入式 UIWebView 中打开外部页面。我可以设置与该请求一起发送的引用 header 吗?当用户打开这些外部页面时,我希望我的应用程序获得“信誉”。
最佳答案
设置referer使用 - setValue:forHTTPHeaderField:
NSMutableURLRequest* request = ...;
[request setValue:@"https://myapp.com" forHTTPHeaderField: @"Referer"];
但请注意,根据 HTTP RFC,您不应该这样做,因为您的应用无法使用 URI 寻址:
The Referer field MUST NOT be sent if the Request-URI was obtained from a source that does not have its own URI, such as input from the user keyboard.
...除非您使用绑定(bind)到您的应用程序的自定义协议(protocol) (myapp://blah.com/blah)。
您可以 create one并调用loadRequest:手动或拦截用户发出的正常请求。
- (BOOL) webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType) navigationType
{
NSDictionary *headers = [request allHTTPHeaderFields];
BOOL hasReferer = [headers objectForKey:@"Referer"]!=nil;
if (hasReferer) {
// .. is this my referer?
return YES;
} else {
// relaunch with a modified request
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
dispatch_async(dispatch_get_main_queue(), ^{
NSURL *url = [request URL];
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
[request setHTTPMethod:@"GET"];
[request setValue:@"https://whatever.com" forHTTPHeaderField: @"Referer"];
[self.webView loadRequest:request];
});
});
return NO;
}
}
关于iphone - 在嵌入式 UIWebView 中指定 HTTP referer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7913305/
我有一个类方法,我想在其中修改当前由ActiveRecord::Relation对象抓取的记录。但是我不知道如何在类方法中引用当前范围。self不会这样做。例子:classUser我会这样使用它:User.some_scope.modify_those_records所以User.some_scope会返回给我一个ActiveRecord::Relation,其中包含一堆User记录。然后我想在该类方法中修改这些记录,然后返回它们。问题是:我不知道如何在类方法中明确引用“那组记录”。 最佳答案 您可以使用current_scope:
我有一个名为yearly_csv的操作。在此操作中,我执行两个操作,如需求和供应。defyearly_csvifdemand=='true'demand_csvelsesupply_csvendend我的View中有两个单选按钮来选择其中一个操作。现在我想在RSpec中单独测试每个操作。例如,一个供应规范和另一个需求规范。我的问题是如何将单选按钮值传递给yearly_csv操作(get)? 最佳答案 在RSpec的较新版本中,您必须使用params键声明查询字符串参数:get:yearly_csv,params:{demand:'t
我有这个可以为我生成一个超链接:我希望它显示在td标签中,所以我想使用这个content_tag来帮助我:"example")%>我想要我的td中的超链接,所以我有这样的东西:,:class=>"example")%>但是我收到语法错误,我该怎么办? 最佳答案 内联:'example')%>或block形式:'example')do%> 关于ruby-on-rails-如何在RoR中使用content_tag嵌入标签?,我们在StackOverflow上找到一个类似的问题:
示例代码:#typed:trueclassKeyGettersig{params(env_var_name:String).returns(KeyGetter)}defself.from_env_var(env_var_name)returnNull.newifenv_var_name.nil?returnnew(env_var_name)enddefinitialize(env_var_name)@env_var_name=env_var_nameenddefto_key"keyfrom#{@env_var_name}"enddefto_s"strfrom#{@env_var_nam
我正在构建一个与RubyonRails后端对话的iPhone应用程序。RubyonRails应用程序还将为Web用户提供服务。restful_authentication插件是提供快速和可定制的用户身份验证的绝佳方式。但是,我希望iPhone应用程序的用户在新列中存储一个由手机的唯一标识符([[UIDevicedevice]uniqueIdentifier])自动创建的帐户。稍后,当用户准备好创建用户名/密码时,帐户将更新为包含用户名和密码,iPhone唯一标识符保持不变。用户在设置用户名/密码之前不能访问该网站。然而,他们可以使用iPhone应用程序,因为该应用程序可以使用它的标识符
我需要快速可靠的Ruby键值存储。有没有类似的东西?要求它完全在Ruby进程内运行,不需要任何外部进程。它可能在显式磁盘刷新的内存中。它需要具有最小的键值检索时间,写入时间可能不太好。存储的数据量不会很糟糕,大约几十万个键,每个键都有~1kb的文本值。 最佳答案 事实证明,对我来说最好的选择是使用纯Hash和Marshal将其序列化到磁盘。对于那么多的对象,YAML肯定太慢了。感谢@ian-armit加强了我对核心Ruby库的信任。 关于ruby-Ruby是否有任何可嵌入的键值存储?,我
给定一个任意的mongoid文档,我如何将其转换为JSON并包含任何嵌入式结构,而不是在我的to_json语句中特别包含这些结构。例如:#!/usr/bin/envrubyrequire'mongoid'require'json'require'pp'classDocincludeMongoid::DocumentincludeMongoid::Timestampsfield:doc_specific_info,type:Stringembeds_many:personsendclassPersonincludeMongoid::Documentfield:role,type:Stri
我需要将嵌入式文档转换成它自己的集合,以便它可以从另一个集合中引用。假设我有一个Parent嵌入了许多Child。我在想一些事情:Parent.all.eachdo|p|p.childs.all.eachdo|c|c.raw_attributes['parent_id']=p.idendp.save!#willsaveparentandcascadepersistallchildsontotheirowncollend这是一个选项吗?理想情况下,我会在控制台中运行它,我只会将mongoid映射从embed_*更改为has_*,因此我不需要更改其余代码或使用另一个集合作为暂存。
我有3个表PostText、PostImage和PostVideo。现在,我将上述所有三个表中的数据合并到一个名为userposts的数组中。现在从userposts我只想访问从偏移量15开始的10条记录。我该怎么做?我尝试了userposts.first(10)。它给了我前10条记录,但我想要从offset-15开始的10条记录。提前致谢。 最佳答案 userposts.drop(15).first(10)会帮助你 关于ruby-on-rails-如何在rails中的数组中指定限制和偏
在PHP中,可以这样做:">是否可以像使用或不使用Rails那样将Ruby嵌入到HTML中? 最佳答案 您将需要使用像Ruby模板(ERB)这样的模板引擎。这是一个example.Rails使用ERB,因此您可以在每个模板中轻松地执行此操作。 关于ruby-在HTML中嵌入Ruby代码?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3486664/