Linkedin.com returns text/plain 如果 link 从 flash 打开

Linkedin.com returns text/plain if the link opened from flash

我在一家制作网络发布软件的公司工作。昨天我偶然发现了一个奇怪的错误,即从 flash 中打开 links。 link 指向 linkedin.com 站点上的一个页面,但也许这不是唯一的情况。

这是一个测试出版物: http://cdiem.cld.bz/Link-test (点击"Product guide"文字,linkedin.com上有link页面)

出于某种原因,它在 Chrome 和 Opera(可能还有其他 Chromium-based 浏览器)中以纯文本形式打开,但在 Firefox 和 IE 中运行良好。 它在 HTML 版本的出版物中也能正常工作(禁用 Flash 插件才能看到它)。如果您只是重新加载页面,它也可以正常工作。

我的猜测是它与 X-Requested-With header 字段有关,因为这是我发现来自 Flash 和 HTML 版本的 HTTP 请求之间唯一不同的地方出版时间:

X-Requested-With:ShockwaveFlash/16.0.0.305

任何人都可以对此提出任何建议吗?

我认为您对 X-Requested-With 的看法是正确的。

进行我使用 hurl.it 进行的这两个测试,您可以在其中测试 HTTP 请求:

第一次测试:请求我们的页面。

请求 headers :

Accept: */*
Accept-Encoding: gzip, deflate
User-Agent: runscope/0.1

响应 headers :

Cache-Control: no-cache, no-store
Connection: keep-alive
Content-Encoding: gzip
Content-Language: en-US
Content-Length: 6156
Content-Type: text/html;charset=utf-8
Date: Thu, 05 Mar 2015 21:10:50 GMT
Expires: Thu, 01 Jan 1970 00:00:00 GMT
...

这里可以很清楚的看到服务器发送了一个text/html内容


我们做同样的测试,但我们只是添加 X-Requested-With header.

第二次测试:用X-Requested-Withheader请求我们的页面。

请求 headers :

Accept: */*
Accept-Encoding: gzip, deflate
User-Agent: runscope/0.1
X-Requested-With: Whosebug_test

响应 headers :

Cache-Control: no-cache, no-store
Connection: keep-alive
Content-Encoding: gzip
Content-Language: en-US
Content-Length: 3602
Content-Type: text/plain;charset=UTF-8
Date: Thu, 05 Mar 2015 21:21:06 GMT
Expires: Thu, 01 Jan 1970 00:00:00 GMT
...

这次可以看到服务器发送了一个text/plain内容

很明显,服务器在接收到由 Flash Player PPAPI 发送的 X-Requested-With header 时将 Content Type 更改为 text/plain(用于 Chrome 和 Opera)就像你看到的那样 here.

希望能帮到你。