zhd070341401 2019-10-09 10:20 采纳率: 0%
浏览 5236
已结题

关于Provisional headers are shown的问题

前端页面使用的Ueditor,有一个很奇怪的问题,前端的Ajax提交代码如下:

    function checkSensitiveWord(backUrl) {
        //var data = $("#article_form").serializeArray();
        /* if(phone!="" && phone!=null){
            backUrl ="/phone"+backUrl;
        } */
        $('#article_form').ajaxSubmit({
           url:"/article/sensitive",
           //data:data,
           type:'POST',
           cache:false,
           async:false,
           dataType:'json',
           success:function(data) {
               if (data.isError === "1") {
                   layer.msg(data.msg, {icon : 2, time : 2000});
               } else if (data.isError === "0") { // 不存在敏感词,直接提交

                   layer.alert(data.msg, function(index){
                       linkbt(backUrl);
                       layer.close(index);
                   });
               } else { // 存在敏感词
                   layer.open({
                         area: ['450px', '220px'],
                         content: data.msg,
                         btn: ['替换并保存', '不替换并保存', '取消保存'],
                         btn1: function(index, layero){
                             $('#filterWord').val("1");
                             layer.closeAll(); 
                             saveArticle(backUrl);
                         },
                         btn2: function(index, layero){
                             $('#filterWord').val("0");
                             layer.closeAll(); 
                             saveArticle(backUrl);
                         },
                         btn3: function(index, layero){
                             layer.closeAll();
                             return false;
                         },
                         cancel: function(){ 
                           //右上角关闭回调
                             layer.closeAll();
                             return false;
                         }
                   });
               }
           },
           error : function() {
               layer.alert('操作失败,请刷新页面后重试!', {icon : 2, time : 5000});
               return false;
           }
       });
    }

发现在Ueditor里头插入YouKu分享的视频iframe并且带有src属性的时候就会出现

Provisional headers are shown

这个提示,导致服务端接收不到这个请求(必现)已经确认的问题如下:
1、Ueditor的XSS的已经放开iframe以及相关的src等属性;
2、当在iframe中不写src属性的时候可以正常提交到服务器并且收到服务器应答;
3、当把iframe标签改为div标签且带上src属性的时候可以正常提交并收到应答;
4、在IE下以及在Chrome下尝试以上情况都必现,故可以排除是插件的问题,在别人的电脑也一样必现。
5、在Nginx的accesslog中在请求正常的情况下可以看到sensitive的请求,但是在出现“Provisional headers are shown”的时候不能看到sensitive的log.
6、这个ajax请求改为异步请求也是不能解决这个问题;
7、将form序列化之后直接通过ajax请求而不使用ajaxSubmit请求提交也是同样的问题。
8、假如正常提交的情况下接口返回非常快(1s以内)。

图片说明

请求会经过一个nginx的反代,但是检查nginx的配置,没有什么其他的安全设置。
现在这个问题完全没有头绪,不知道问题出在哪里,已经快颠覆了自己对代码的认识。
请各位遇到相似问题的童鞋予以指点,谢谢。

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-10-09 11:13
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?