我有一个常规的基于 YouTube 浏览器的上传表单,如下所示。它在 IE、Chrome 和旧版本的 Firefox 中运行良好。但是,我的 Firefox 16.0.2 只是挂在 POST 上。我已经用 Firefox 16.x 在其他计算机上复制了这个问题。
如果我通过将 YouTube 的 URL 从https ://uploads.gdata.youtube.com更改为http : //uploads.gdata.youtube.com 来手动覆盖 SSL,文件会正确上传。
更奇怪的是,Firebug的Net选项卡上根本没有记录该请求。在 Firefox 的Web Console上,我可以看到请求,但完全没有响应和状态代码。然后,如果我使用启用了解密 HTTPS 流量选项的 Fiddler,则文件上传正确。
任何人都知道会发生什么或如何在不解决问题的情况下监控 SSL 流量?
<!DOCTYPE html>
<html>
<head><title>YouTube Test</title></head>
<body>
<form id="frmYouTube" enctype="multipart/form-data" method="post" action="https://uploads.gdata.youtube.com/action/FormDataUpload/YOU_TUBE_URL?nexturl=https%3a%2f%2fMY.DOMAIN.COM%2fDIR_1%2fDIR_2%3fid2%3dLOCAL_ID">
<table>
<tr><td><input type="file" name="file" /></td></tr>
<tr><td>
<input type="hidden" name="token" value="MY_YOUTUBE_TOKEN" />
<input type="submit" value="Upload" />
</td></tr>
</table>
</form>
</body>
</html>
YouTube url 和令牌是在后端使用 ASP.Net 和 Google.GData.YouTube 库生成的。这是该代码的一部分:
public class BaseModel
{
public string SITE_YOUTUBE_APP_NAME = "";
public string SITE_YOUTUBE_DEV_KEY = "";
public string SITE_YOUTUBE_USERNAME = "";
public string SITE_YOUTUBE_PASSWORD = "";
public string YOUTUBE_CATEGORY = "";
public FormUploadToken FormToken;
public void Load()
{
YouTubeRequestSettings settings = new YouTubeRequestSettings(
SITE_YOUTUBE_APP_NAME, SITE_YOUTUBE_DEV_KEY,
SITE_YOUTUBE_USERNAME, SITE_YOUTUBE_PASSWORD);
YouTubeRequest request = new YouTubeRequest(settings);
Video newVideo = new Video();
string title = "Test Title";
string description = "Test Description";
newVideo.Title = title;
newVideo.Tags.Add(new MediaCategory(YOUTUBE_CATEGORY, YouTubeNameTable.CategorySchema));
newVideo.Keywords = "test";
newVideo.Description = description;
newVideo.YouTubeEntry.Private = false;
FormToken = request.CreateFormUploadToken(newVideo);
}
}