我在对服务器发出的一些请求中看到了这个HTTP标头:
X-P2P-PeerDist: Version=1.0
Run Code Online (Sandbox Code Playgroud)
我知道这个:http://www.faqs.org/patents/app/20110016220#ixzz3g3X8lSYF,但我想知道发送该标头的已知客户端是什么.
任何的想法?
更新:根据要求,我包括随请求发送的其他标头(我已经混淆了一些与我们的客户有关的私人资料***):
GET http://***.com/ HTTP/1.1
Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*
Connection: Keep-Alive
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/7.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; InfoPath.3; .NET4.0C; .NET4.0E)
X-P2P-PeerDist: Version=1.0
UA-CPU: AMD64
Accept-Encoding: gzip, deflate, peerdist
Host: ***.com
Cookie: SMSESSION=***; OrgName=***; authCookie=***; ASP.NET_SessionId=***
Pragma: no-cache
Cache-Control: no-cache
Run Code Online (Sandbox Code Playgroud)
用户代理似乎Trident/在IE7模式(compatible; MSIE 7.0)中指示IE11(),但是当我使用此配置时,我没有得到X-P2P-PeerDist头,所以我认为它不直接相关.
我们刚刚开始使用"用于Apache Cordova的Visual Studio工具"创建跨平台移动应用程序.
我按照安装工具为iOS构建中描述的过程和在iOS设备上运行您的应用程序.一切运行良好,应用程序部署在我的USB连接iPhone上,并按预期运行.
然后我尝试将应用程序上传到iTunes,通过TestFlight向测试人员提供应用程序,并通常了解应用程序提交的工作原理:
错误ITMS-90161:"无效的供应配置文件.包xxx.yyyyyy.zzzz [Payload/xxx.yyyyyy.zzzz.app]中包含的供应配置文件无效.[缺少代码签名证书.]有关详细信息,请访问iOS开发者门户网站."
我的问题:
非常感谢任何指向正确方向的指针.
托马斯
SameSiteCookies的概念绝对是一个难以掌握的...
为了准备Chrome 80的更改,我正在尝试衡量缺少SameSite属性对我的 cookie 的影响。我有以下配置:
Set-Cookie: SomeCookie=value; path=/; secure; httponly) 并重定向到auth.mysite.com因为main.mysite.com和auth.mysite.com之间的重定向被认为是同一个站点,并且因为Chrome 80将缺少SameSite属性视为SameSite=Lax,所以这很好用。
但是,当main.mysite.com嵌入在另一个站点(例如othersite.com)上托管的页面上的框架中时,SomeCookie不会在第 3 步发送回main.mysite.com:
这是正常的吗?为什么?
如何在JavaScript中检索已应用于元素的样式,不包括默认的用户代理样式(仅限内联+样式表样式).
基本上,您可以在您最喜欢的开发人员工具的Computed选项卡中看到所有用户样式:
没有框架,IE8 +,Edge,Chrome和Firefox.
我希望答案是getComputedStyle减去getDefaultComputedStyle的结果,但是以跨浏览器的方式.看到所有开发人员工具都能够做到这一点,必须有一个解决方案:)
我正在使用一个第三方组件,该组件不会将引用转发到其 DOM 组件,不幸的是,我需要在代码中获取对其 DOM 元素的引用。
下面的代码显然失败了:
const ThirdPartyComponent = (props) => {
return <div>I'm a third party component</div>;
};
const MyComponent = () => {
const ref = useRef();
return <ThirdPartyComponent ref={ref} />;
};
Run Code Online (Sandbox Code Playgroud)
“无法给函数组件提供引用。尝试访问此引用将失败。您是否打算使用 React.forwardRef() ?”
请参阅此处的代码和框。
是否有办法获取第三方组件内 DOM 元素的引用?我知道已弃用的 findDOMNode API。我不太热衷于它,但尽管如此,我还是没能让它发挥作用。
注意:我知道我所要求的并不被认为是好的做法。我这样做的原因是让react-beautiful-dnd与DevExtreme的Reactive Grid一起工作。Draggable组件需要对可拖动元素的引用(<tr>这里的 s,我没有)。只是想简化问题。
reactjs devextreme react-beautiful-dnd react-functional-component
我只是偶然注意到WebKit和Firefox在窗口中定义了一个名为"Counter"的全局变量.知道这是什么吗?
在Chrome上,它在手表中显示如下:
Counter: function Counter() { [native code] }
Run Code Online (Sandbox Code Playgroud)
注意:此变量在IE上不存在(使用版本10测试)
我在Chrome上遇到了一个非常奇怪的行为,这对我来说似乎是个错误:当您点击链接时,该链接无法获得焦点.更糟糕的是,身体取而代之的是焦点.
这种行为可以在这里观察到:http://jsfiddle.net/YfbR7/4/(see code sample here)
这是一个错误吗?这是标准行为吗?是否有任何解决方法使链接能够像其他浏览器一样专注于鼠标按下?
出于某种原因,即使提交按钮具有属性,Chrome 似乎也会验证必填字段formnovalidate。
<form>
Required field: <input type="text" required />
<input type="submit" formnovalidate value="do not validate" />
</form>
Run Code Online (Sandbox Code Playgroud)
单击“不验证”按钮仍会验证文本字段(在 Chrome 30.0.1599.69 m 上测试)。
有什么我做错了吗?这是一个错误吗?任何解决方法?
我已经将以下代码添加到我的.csproj中,以便缩小构建项目时已更改的JS文件:
<Target Name="BeforeBuild">
<MSBuild Targets="CheckAndMinifyJS" Projects="$(MSBuildProjectFile)" />
</Target>
<ItemGroup>
<JS Include="$(ProjectDir)\**\*.js" />
</ItemGroup>
<Target Name="CheckAndMinifyJS" Inputs="@(JS)" Outputs="@(JS->'$(ProjectDir)%(RecursiveDir)%(Filename).min.js')">
<AjaxMin JsSourceFiles="@(JS)" JsSourceExtensionPattern="\.js$" JsTargetExtension=".min.js" />
</Target>
<UsingTask TaskName="AjaxMin" AssemblyFile="..\..\ThirdParty\AjaxMinTask.dll" />
Run Code Online (Sandbox Code Playgroud)
这很有效,但它有副作用:当您在Visual Studio(2015)中查看项目时,所有JS文件都显示重复(相同的路径,但不同的构建操作):
我想避免在项目中出现带有"JS"构建操作的项目.我怎样才能做到这一点?
请注意,几个开发人员正在使用该项目,因此任何建议的解决方案都应包含在.csproj或解决方案中(例如:要求所有开发人员修改其注册表以更改JS文件的默认构建操作是不可接受的).
我正在尝试为Asp.Net中的Edge编写一个浏览器定义文件,以避免将其标识为"Chrome 46".
我在Edge.browser文件App_Browsers夹中创建了以下文件:
<browsers>
<!--Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586-->
<browser id="Edge" parentID="Chrome">
<identification>
<userAgent match="Edge" />
</identification>
<capture>
<userAgent match="Edge/(?'version'(?'major'\d+)(\.(?'minor'\d+)?))" />
</capture>
<capabilities>
<capability name="browser" value="Edge" />
<capability name="version" value="${version}" />
<capability name="majorVersion" value="${major}" />
<capability name="minorVersion" value="${minor}" />
</capabilities>
</browser>
</browsers>
Run Code Online (Sandbox Code Playgroud)
这很好地匹配Edge,但是如果使用Chrome向网站发出另一个请求,浏览器也会匹配为Edge:S
我究竟做错了什么?
所以我已经阅读了Chrome 80 的 cookie 默认为 SameSite=Lax并且像你们其他人一样,我现在正在尝试确定这将对我的网站产生的影响。
我正在运行的站点分为几个子域,每个子域都使用自己的 cookie。它看起来像这样:
path=/; secure; httponly)path=/; secure; httponly)由于这些 cookie 没有指定SameSite属性,它们应该被视为Lax在 Chrome 80 上,因此应该仅限于同站点请求(除非它是顶级导航)。
然后,根据SameSite cookie 的解释:
如果用户在your-project.github.io 上并从my-project.github.io请求图像, 则这是跨站点请求。
因此,当我启用“SameSite 默认 cookie”和“没有 SameSite 的 Cookie 必须是安全的”标志时,我惊讶地发现当first-site.domain.com将second-site.domain.com嵌入到框架中时,Cookie2是仍然被发送到second-site.domain.com,这似乎是矛盾的。
我肯定是误会了什么,但此刻,我仍然不解。
注意:我已经验证,当我在anotherdomain.com的框架中嵌入second-site.domain.com时,cookie 不是由浏览器发送的(如预期的那样)。
您如何使用JavaScriptSerializer和自定义JavaScriptConverter序列化和反序列化其键为JSON 整数的字典?
对于那些不知道的人,JavaScripSerializer无法开箱即用.
请注意,我对需要在序列化之前转换字典或使用其他序列化程序的解决方案感兴趣(如果有的话,您可能会看到此帖子).
更新:为了消除任何歧义,我没有问题,密钥是作为JSON中的字符串生成的(因此1将变为"1").
html ×3
javascript ×3
cookies ×2
samesite ×2
.net ×1
buildaction ×1
c# ×1
csproj ×1
css ×1
devextreme ×1
dictionary ×1
firefox ×1
focus ×1
forms ×1
http-headers ×1
json ×1
msbuild ×1
reactjs ×1
user-agent ×1
webkit ×1