小编TMC*_*TMC的帖子

为什么这个跨域请求在其他浏览器中有效但在IE9中无效?

我有一些Ajax代码可以在Safari,Chrome和Firefox中使用,但不能在IE9中使用.

页面已打开http://foo.com/test.aspx,它正在向托管的Web服务发出AJAX请求https://service.foo.com.我以为我不会有任何跨域问题,但鉴于IE9阻止它,它似乎我做:(

var tempUrl = "https://service.foo.com/dummy.svc/test?hi=bye";
$.get(tempUrl, "html");
Run Code Online (Sandbox Code Playgroud)

正如我所提到的,代码可以在其他3个浏览器中运行,而不是IE9.(我只关心IE9,而不是IE8或更老版本).

我做了一些挖掘,发现MSDN上的这篇文章说:

跨域请求需要网页和服务器之间的相互同意.您可以通过在窗口对象外创建XDomainRequest对象并打开与特定域的连接,在Web页面中启动跨域请求.浏览器将通过发送带有原始值的Origin头来从域的服务器请求数据.如果服务器使用*的Access-Control-Allow-Origin标头或请求页面的确切URL进行响应,它将仅完成连接.此行为是万维网联盟(W3C)的Web应用程序工作组关于XDomainRequest对象与之集成的客户端跨域通信的草案框架的一部分.

在我走上使用XDR的道路之前,我想与比我更聪明的人验证这是否是正确的方法.

  1. 添加Response.AddHeader("Access-Control-Allow-Origin", "*");到我的页面
  2. 创建条件jscript代码,检测IE9并使用XDR而不是我正在使用的常规jquery调用$.get.

我完全不在或者这是正确的方法吗?

(假设这是正确的方法,Acecss-Control-Allow-Origin响应标题在哪里 - 在我的页面http://foo.com/test.aspx或在webservice上的https://service.foo.com?)

ajax cross-domain internet-explorer-9

6
推荐指数
2
解决办法
1万
查看次数

IE7和IE8未加载条件CSS

我写了一堆CSS,使我的网站首先成为Mobile,然后我使用CSS Media Queries为桌面浏览器加载另一个样式表.我之所以这样做,是因为有太多移动浏览器无法理解CSS媒体查询,桌面用户更有可能拥有支持此功能的现代浏览器.

我有以下CSS适用于所有现代浏览器(IE9,Chrome,Firefox 3.6 +,Safari 4 + 5):

然后我意识到IE7和IE8不支持CSS媒体查询,所以上面的内容不起作用.所以我添加了一个条件语句来加载它:

<link rel="Stylesheet" type="text/css" href="/css/mobile.css" media="all"/>
<!-- [if lt IE 9]>
<link rel="Stylesheet" type="text/css" href="/css/desktop.css" media="all" />
<! [endif] -->  
<link rel="Stylesheet" type="text/css" href="/css/desktop.css" media="only screen and (min-width: 640px)" />
Run Code Online (Sandbox Code Playgroud)

但是,使用IE Tester和Browsershots,我已经确认desktop.css在IE 7和8中没有加载.它似乎完全忽略了样式表.

然后我尝试将条件语句更改为<!-- [if IE 8]>但没有任何效果.

最后,我完全删除了条件语句,产生了以下代码:

<link rel="Stylesheet" type="text/css" href="/css/mobile.css" media="all"/>
<link rel="Stylesheet" type="text/css" href="/css/desktop.css" media="all" />
Run Code Online (Sandbox Code Playgroud)

最后一次尝试导致我的desktop.css被加载到IE7和IE8中.所以这证明了CSS是可以的.看起来我的条件语句没有被触发.

我有什么想法我做错了吗?

html css internet-explorer-8 internet-explorer-7

5
推荐指数
1
解决办法
5179
查看次数

iOS上的Safari是否支持DNS Prefetch指令?

我最近遇到了DNS Prefetch指令作为HTML5 Boilerplate模板的一部分.根据维基百科:

目前,任何公认的标准都没有明确定义预取,但Mozilla已经宣布了Internet草案的工作,这将与Firefox中的实现相匹配.

<link rel="prefetch" href="http://www.example.com/">
Run Code Online (Sandbox Code Playgroud)

我读到了2010年9月的信息,修复了Safari 5.0.1,它修复了当DNS Prefetch指令存在时缓慢/停滞的页面加载.但是,我无法了解iOS上的Safari是否支持DNS预取.

我们正在构建一些HTML 5页面,这些页面仅在iOS应用程序中的UIWebView中加载.在这个页面上有一些我们正在加载的外部资源,所以我想改善页面加载时间并使用DNS预取,如果它会有所帮助.

html5 mobile-safari ios4 ios

5
推荐指数
1
解决办法
2153
查看次数

使用Python将二进制文件中的“\r\r\n”替换为“\r\n”

我对 Python 非常陌生,只是通过它爬行以完成任务,并希望得到一些帮助(Python 3.1)。

我有一个用 DictWriter 编写的 CSV 文件,其方言为“excel”。创建文件后,我注意到文件中有多余的行,仔细检查是因为每行末尾都有“\r\r\n”而不是“\r\n”。

我可以通过以下两种方法之一解决这个问题:

  1. 以二进制模式而不是文本模式打开文件。问题在于,我终其一生都无法弄清楚如何让 writerow() 对二进制文件起作用——我得到了很多异常。

  2. 第二种(更简单的)解决方案只是用“\r\n”替换所有的“\r\r\n”。

但是,在我的尝试中,我遇到了以下错误:

一种。不先关闭文件,搜索和替换只会添加更多的“\r\r\n”行。湾 我已经尝试先关闭文件,以二进制模式重新打开并进行相同的搜索和替换,但我得到了错误:

WindowsError: [错误 32] 进程无法访问该文件,因为它正被另一个进程使用

这是代码:

#code before this writes to the final in text mode
myfile.close()
myfile = open(outputFile, "wb")
for line in fileinput.FileInput(outputFile, inplace=1):
    line = line.replace("\r\r\n", "\r\n")
    print (line)
myfile.close()
Run Code Online (Sandbox Code Playgroud)

任何人都可以提供任何帮助!

python-3.x

4
推荐指数
1
解决办法
7981
查看次数

为大型用户群获取Twitter好友列表并管理速率限制的设计

假设有一个移动应用程序和一个服务器.

我对速率限制有疑问,并希望有人可以就设计提出一些建议,因为我正在敲打如何绕过速率限制.必须有一些我失踪的东西,因为每小时每IP的150个未经验证的速率限制非常低.

想象一下,我想要构建的场景如下(简化为一个简单的例子).假设用户已登录Twitter进行整个讨论,以删除有关oAuth的讨论.

Mobile talks to our service to show users twitter friends list. Every time the mobile app is loaded, it will show the entire friends list, and highlighting the new friends that were added within the last 2 days.

而已.但诀窍在于我想确保朋友列表在客户端始终是最新的,这意味着我们的服务器必须拥有最新的最新朋友列表.

我希望我的服务器定期自动扫描我的应用的每个用户的Twitter好友列表,看看是否添加了新朋友.

我们的初始设计是让我们的服务器使用此流程完成所有工作:

  1. 新用户在客户端登录,将访问令牌提供给服务器
  2. 服务器调用Twitter REST API来获取初始好友列表
  3. 服务器存储Twitter好友ID并显示响应具有该列表的客户端.

服务器定期(例如每48小时)检查每个用户的朋友列表的Twitter REST API,并将其与我们的缓存Twitter朋友列表进行比较,以便他们查看谁是新用户并在移动应用中突出显示.

关于这一点的好处是,所有与twitter的交互,以获得朋友列表,比较和peridiocally刷新是在服务器上.移动客户端只需拨打一次我的服务器并获取好友列表.

这种设计的问题在于它适用于单个用户,但由于未经认证的呼叫的速率限制为每小时150个,所以一旦151个用户使用我的服务(具有固定的IP),我将达到我的极限.

我能看到的唯一解决方案是让客户端为每个用户完成工作,然后将我的服务器缓存的朋友列表发送给我.这将照顾上面的步骤#2.但是,对于步骤#4,我必须在客户端构建一些东西来自动刷新twitter朋友并发送回服务器.

在这个Twitter好友列表操作中让客户参与其中是非常笨拙的.

起初我以为我疯了,公众未经身份验证的API,如获取好友列表,不会受到速率限制.但是,根据他们的文档,它是.

我错过了一些明显的东西,或者解决这个问题的唯一方法是将重要的逻辑放入客户端?

api twitter

3
推荐指数
1
解决办法
2995
查看次数

如何将具有换行符的SQL值转换为HTML中的正确段落<p>?

我有一个从SQL返回的文本可能有新行.但是,由于我将值放在<p></p>标签之间,因此忽略了换行符.

例如,如果SQL中的文本实际上是这样(行之间有CRLF):

foobar car
carbar foo
Run Code Online (Sandbox Code Playgroud)

HTML代码变为:

<p>foobar car
carbar foo</p>
Run Code Online (Sandbox Code Playgroud)

这只是呈现为:

foobar car carbar foo
Run Code Online (Sandbox Code Playgroud)

最终似乎我想要检测换行符然后添加适当的HTML,例如:

<p>foobar car</p><p>carbar foo</p>
Run Code Online (Sandbox Code Playgroud)

甚至

<p>foobar car<br/><br/>carbar foo</p>
Run Code Online (Sandbox Code Playgroud)

这应该在前端处理还是在返回数据的SQL查询中处理?它似乎应该在前端代码(在我的ASP.NET视图中)处理,但如果是这样,如何?

我注意到PHP中有一个函数来处理这种情况:nl2br(http://www.php.net/manual/en/function.nl2br.php)但不幸的是,这对我没有帮助:)

sql sql-server asp.net

3
推荐指数
1
解决办法
2万
查看次数

如何使用ViewBag存储字符串数组

我想将一组字符串存储到Controller中的ViewBag中,以便在我的视图中使用.我希望能够这样做:

ViewBag.Autobots[0].FirstName = "Bumble"
ViewBag.Autobots[0].LastName = "Bee"
ViewBag.Autobots[1].FirstName = "Optimus"
ViewBag.Autobots[1].LastName = "Prime"
Run Code Online (Sandbox Code Playgroud)

但是,为了做到这一点,我需要首先声明Autobots数组.我尝试了几种不同的方法,但是在这个看似简单的事情上被绊倒了.会爱一些帮助!

c# asp.net asp.net-mvc-3

3
推荐指数
1
解决办法
2万
查看次数

在ASP.NET MVC3中混合使用Javascript和Razor时,混淆了变量范围

我有一些代码由于错误而失败:

The name 'foo' does not exist in the current context 
Run Code Online (Sandbox Code Playgroud)

这是由于我感到困惑的可变范围问题.我认为这应该有效:

var foo = "<ul>";

@for (int i = 0; i < 10; i++)
{
    foo += "<li>bar</li>";
}
foo += "</ul>";
Run Code Online (Sandbox Code Playgroud)

Razor语法应该调用for循环,并且变量foo在javascript方面仍然在范围内,因为在浏览器解释代码时,razor语法基本上是不可见的.

但是,我得到的错误消息来自编译器,所以C#试图引用foo.我错过了什么,我如何修改代码,以便我得到正确的javascript代码输出,所以它连接<li>bar</li>像我试图做的那样?

c# asp.net-mvc razor asp.net-mvc-3

2
推荐指数
1
解决办法
1386
查看次数

为什么我的Azure部署仍然具有远程桌面的第三个端点,即使我已禁用它?

我之前在Azure项目中启用了远程桌面,允许我在我们的暂存环境中进行调试.除了80和443之外,这还在端口3389上添加了第3个端点.

我已完成调试并在发布向导中禁用了远程桌面,然后进行了另一个部署到暂存.然后我尝试使用我们的生产实例进行VIP交换,但是Azure管理控制台因为分段而产生错误,有3个端点,生产有2个(你不能在具有不同端点数的实例之间进行VIP交换).

以下是我为验证远程桌面被禁用所做的工作:

  1. 我在发布向导中检查了三次,我特定要禁用远程桌面.
  2. .azurePubxml有:

    <AzureEnableRemoteDesktop>False</AzureEnableRemoteDesktop>

  3. cscfg有:

    <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled" value="false" />

我的csdef有:

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="mysite.App" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
<WebRole name="www" vmsize="Small">
<Sites>
<Site name="Web">
    <VirtualApplication name="r" physicalDirectory="../ReviewPost/ReviewPost" />
    <Bindings>
        <Binding name="Endpoint1" endpointName="Endpoint1" />
        <Binding name="Endpoint2" endpointName="Endpoint2" />
    </Bindings>
</Site>
</Sites>
<Endpoints>
  <InputEndpoint name="Endpoint1" protocol="http" port="80" />
  <InputEndpoint name="Endpoint2" protocol="https" port="443" certificate="STAR.mysite.com" />
</Endpoints>
<Imports>
  <Import moduleName="Diagnostics" />
  <Import moduleName="RemoteAccess" />
  <Import moduleName="RemoteForwarder" />
</Imports>
<Certificates>
  <Certificate name="STAR.mysite.com" storeLocation="LocalMachine" storeName="My" />
</Certificates>
</WebRole>
</ServiceDefinition>
Run Code Online (Sandbox Code Playgroud)

尽管有上述配置,但azure控制台显示了登台环境的3个端点(端口80,443 3389).

我错过了什么?

azure visual-studio-2010

2
推荐指数
1
解决办法
1431
查看次数

如何使用图形api从用户的Facebook新闻源中仅获取照片?

我梳理了Facebook文档,但没有看到一个明显的方法只返回用户新闻源上的照片.特别:

提供FB访问令牌,我想将新闻源过滤到仅发布的照片​​.

https://graph.facebook.com/me/home?access_token=

返回整个新闻源.我看到元素有一个"Type"属性,当它是一张照片时,它的值为"photo".

如何将响应范围仅限于返回照片?

javascript facebook facebook-fql facebook-graph-api

2
推荐指数
1
解决办法
5488
查看次数

当变量具有值时,为什么会报告"空引用"?

我的ASP.NET MVC3项目中有一些C#代码,它抛出一个异常声明:

Cannot perform runtime binding on a null reference
Run Code Online (Sandbox Code Playgroud)

抛出异常的代码行是:

ViewBag.Foo[i].Name = allSpark[i].Users.Name;
Run Code Online (Sandbox Code Playgroud)

这是代码块:

ViewBag.Foo = new myAllSparkModelType[allSpark.Length];
for (int i = 0; i < allSpark.Length; i++)
{
    ViewBag.Foo[i].Name = allSpark[i].Users.Name;
    ...
}
Run Code Online (Sandbox Code Playgroud)

当我设置断点并检查时allSpark[i].Users.Name,它肯定有一个值(例如"Fred").

如果我注释掉这行代码,那么下一行(类似代码)会抛出相同的异常.

所以问题是要么allSpark[i].Users.Name是一个空引用(我已经确认不是),或者我不能ViewBag像我一样使用.如果是后者,我很困惑,因为我认为ViewBag可以这样使用.

c# asp.net

1
推荐指数
1
解决办法
995
查看次数