javascript - 跨域上传图片

标签 javascript php jquery ajax

我正在尝试将图像从一个域上传到另一个域 (CORS)。

该代码在本地主机上完美运行,但是当我在真实域中尝试时,我不断在开发者控制台上收到此消息:

Invalid request

上传文件.js:

function upload() {
  var formData = new FormData();
  formData.append('img', $('#profimg')[0].files[0]);
  $.ajax({
       url : 'https://example2.com/upload.php,
       type : 'POST',
       data : formData,
       cache: false,
       contentType: false,
       processData: false,
       crossDomain: true,
       success: function(h) {
         alert(h);
       }
});
}

上传.php:

<?php
    header('Access-Control-Allow-Origin: https://example1.com');
    header('Access-Control-Allow-Credentials: true');
    header('Access-Control-Allow-Headers: Content-Type, Content-Range, Content-Disposition, Content-Description');
    require 'c.upload.php';
    $tsUpload = new tsUpload();
    echo $tsUpload['response']; //It have to respond a message like Uploaded Image or Image cannot Upload, not the message that I receive on the developer console.

我尝试了一切,比如更改 header 、不从 Ajax 函数发送数据、从 https 更改为 http、从头开始编写代码,但我总是收到该消息。

我的问题是什么?难道我做错了什么? 谢谢。

最佳答案

如果您收到无效请求,这意味着无法创建请求,则该错误发生在 http create 之前。$.ajax 有一个错误() 回调,您可以添加它并查看详细错误消息。

购买方式,您发送ajax的页面'url是http或https

关于javascript - 跨域上传图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52846725/

相关文章:

javascript - 在 Javascript 中保护 JSON?

php - codeigniter 中的语言没有按预期工作

javascript - 对于 html/css/js,在移动模式下幻灯片放映一个周期后, slider 图像会恢复为原始大小

javascript - 我的 Bootstrap 轮播不起作用,按钮不显示

javascript - (codeigniter) 使用jquery调用 Controller 在 View 内加载 View

javascript - 简单视差滚动 - 内容在横幅上滑动

javascript - 在电子邮件正文中开始一个新段落

javascript - AngularJS:在每次 ng-click 上重新随机化 ng-repeat

php - CakePHP 3 Ldap 身份验证问题和说明

PHP 数组在 foreach() 中获取下一个键/值