好的,基本上。 我将一些javascript代码注入网页,并将该页面上的图像上传到另一台服务器。 现在我在我的域上运行它(当然),但是我需要将multipart / form-data请求发布到我不拥有的PHP文件中。 由于它是上传而不是简单的获取数据的请求,因此我不能在初始调用中使用jsonp,因为响应不在json中。
使用James Padolsey的跨域脚本,我可以跨域执行$ .get和$ .post请求,但由于我使用$ .ajax它不起作用。 He uses the Yahoo Query Language to acomplish this
这基本上就是我提出请求的方式
$.ajax({
url: 'http://website.com/upload.php',
type: 'POST',
contentType:'multipart/form-data',
data: postData,
success: successCallback,
error : function(XMLHttpRequest, textStatus, errorThrown) {
console.log('Error');
}
});
我想完全基于JavaScript,以避免让我的服务器执行请求。 所以要重新上限,我可以获取图像字节并使用javascript发出请求。但到目前为止,我不能跨域,因为我是$ .ajax将内容类型设置为“multipart / form-data”。 有没有其他方法可以使用或不使用YQL进行跨域请求?
使用iframe发出请求将无效,因为iframe的域名会发生变化,我无权访问该回复。
答案 0 :(得分:3)
这是一个众所周知且难以解决的网页开发问题,被称为Same Origin Policy
Javascript阻止访问不同来源的网页的大多数方法和属性。术语“origin”是使用域名,应用程序层协议和(在大多数浏览器中)运行脚本的HTML文档的端口号来定义的。当且仅当所有这些值完全相同时,才认为两个资源具有相同的来源。
有几种解决方法。
这几乎是你唯一的选择