Heim > Backend-Entwicklung > PHP-Tutorial > [又拍云]通过jquery调用表单API出现401错误

[又拍云]通过jquery调用表单API出现401错误

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-06 20:44:54
Original
1570 Leute haben es durchsucht

源代码如下:

<html>
  <head>
    <meta charset=utf-8>
    <script src="../qddian/js/jquery.js"></script>
  </head>
  <body>
    <form action="http://v0.api.upyun.com/<?php echo $bucket?>"
    method=post enctype="multipart/form-data">
      <!-- 需要传递以下三个表单内容 -->
      <input type=hidden name=policy value="<?php echo $policy?>">
      <input type=hidden name=signature value="<?php echo $signature?>">
      <input type=file name=file>
      <a id=upload href=#>上传</a>
    </form>
  </body>
</html>
<script>
    $(function(){
        $('a#upload').click(function(){
            //$('form').submit();

            $.post(
                'http://v0.api.upyun.com/<?php echo $bucket; ?>',
                {
                    file: $('input[name=file]').val(),
                    policy: $('input[name=policy]').val(),
                    signature: $('input[name=signature]').val()
                },
                function(data){
                    alert('Data: ' + data);
                }
            );

            return false;
        });
    });
</script>
Nach dem Login kopieren
Nach dem Login kopieren

通过上述方式则提示"401 Unauthorized sign error",但通过$('form').submit()方式提交则返回200成功。截图如下,请各位大牛协助解决一下,不胜感激!

[又拍云]通过jquery调用表单API出现401错误
[又拍云]通过jquery调用表单API出现401错误
[又拍云]通过jquery调用表单API出现401错误

回复内容:

源代码如下:

<html>
  <head>
    <meta charset=utf-8>
    <script src="../qddian/js/jquery.js"></script>
  </head>
  <body>
    <form action="http://v0.api.upyun.com/<?php echo $bucket?>"
    method=post enctype="multipart/form-data">
      <!-- 需要传递以下三个表单内容 -->
      <input type=hidden name=policy value="<?php echo $policy?>">
      <input type=hidden name=signature value="<?php echo $signature?>">
      <input type=file name=file>
      <a id=upload href=#>上传</a>
    </form>
  </body>
</html>
<script>
    $(function(){
        $('a#upload').click(function(){
            //$('form').submit();

            $.post(
                'http://v0.api.upyun.com/<?php echo $bucket; ?>',
                {
                    file: $('input[name=file]').val(),
                    policy: $('input[name=policy]').val(),
                    signature: $('input[name=signature]').val()
                },
                function(data){
                    alert('Data: ' + data);
                }
            );

            return false;
        });
    });
</script>
Nach dem Login kopieren
Nach dem Login kopieren

通过上述方式则提示"401 Unauthorized sign error",但通过$('form').submit()方式提交则返回200成功。截图如下,请各位大牛协助解决一下,不胜感激!

[又拍云]通过jquery调用表单API出现401错误
[又拍云]通过jquery调用表单API出现401错误
[又拍云]通过jquery调用表单API出现401错误

401的错误是签名的问题:
401:Unauthorized 访问未授权
401:Sign error 签名错误(操作员和密码,或签名格式错误)
sign error:
检查签名格式是否和又拍接口文档中一致。
Unauthorized:
错误检查空间名,操作员,密码等信息填写是否正确,上传路径是否有根“/”开始。
你可以参考下以上错误提示。

这个错误详细查看upyun的API http://www.upyun.com/intro/api-errors.php

另外使用jQuery的post是无法上传文件的,

$('input[name=file]').val()
Nach dem Login kopieren

获取的只是上传文件的本地路径。

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
PHP-Datenerfassung?
Aus 1970-01-01 08:00:00
0
0
0
PHP-Erweiterung intl
Aus 1970-01-01 08:00:00
0
0
0
Wie man PHP gut lernt
Aus 1970-01-01 08:00:00
0
0
0
Mehrere PHP-Versionen
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage