Firefox 16中基于浏览器的YouTube上传意外中止

Jak*_*aun 5 ssl firefox youtube-api firefox-16

我有一个常规的基于YouTube浏览器的上传表单,如下所示.它适用于IE,Chrome和旧版本的Firefox.但是,我的Firefox 16.0.2只是挂在POST上.我已经使用Firefox 16.x在其他计算机上复制了该问题.

文件上传正确,如果我手动从改变YouTube的URL重写SSL:HTTPS://uploads.gdata.youtube.comHTTP://uploads.gdata.youtube.com.

为了使事情变得更加奇怪,Firebug中的Net选项卡上根本不记录请求.在Firefox的Web控制台上,我可以看到请求,但响应和状态代码完全丢失.然后,如果我使用Fiddler并启用了Decrypt HTTPS流量选项,则文件会正确上传.

任何人都有任何想法可能会发生什么或如何监控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>
Run Code Online (Sandbox Code Playgroud)

使用带有Google.GData.YouTube库的ASP.Net在后端生成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);
    }
}
Run Code Online (Sandbox Code Playgroud)

Jak*_*aun 0

由于 Firefox 17 现已推出,而 Google 并不完全支持 Firefox 16 的此功能,因此我添加了一条警告,提醒使用 Firefox 16 的用户升级到 Firefox 17 或使用其他浏览器。虽然并不理想,但考虑到在 Firefox 16 上未成功的测试用户数量,这是唯一合理的解决方案。