gpt4 book ai didi

java - 尝试执行 Blob 存储并将表单数据添加到数据存储 预检错误

转载 作者:太空宇宙 更新时间:2023-11-04 12:30:48 25 4
gpt4 key购买 nike

使用 Google Appengine 端点创建了一个 servlet 来帮助处理表单发布数据以注册和上传 Logo 图像文件。它的工作方式是,它首先转到一个 blob servlet,然后返回一个像这样的链接

网址: http://localhost:8080/_ah/upload/ag1oZXJjdWxlcy0yMDE1ciILEhVfX0Jsb2JVcGxvYWRTZXNzaW9uX18YgICAgICAqAkM

对于我的表单帖子重定向到由 blob servlet 生成的 url,JUNIT 测试运行良好,但是当我尝试从使用 Angular 构建的前端接受时,我得到了来自 blob servlet 的第一个响应,我们的 URL 现在处理我们的表单帖子到该 url 返回此错误

XMLHttpRequest cannot load http://localhost:8080/_ah/upload/ag1oZXJjdWxlcy0yMDE1ciILEhVfX0Jsb2JVcGxvYWRTZXNzaW9uX18YgICAgICAqAkM.<br> 
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' <br> header is present on the requested resource. <br> Origin 'http://localhost:9000' is therefore not allowed access.

已经为此奋斗了好几天,预检似乎有什么问题

查看前端(来自 localhost:9000)代码

//send link to blob_store 
/**
blob_servlet_url is the link to our blob_servlet which is something like this localhost:8080/blob_servlet
*/
$http.get(blob_servlet_url)
.success(function (data, status, headers, config) {
//move our form data to server now
uploadUrl=data; //return the url to forward form data
console.log("Url:- "+data);
var formData = {};

$http({url:uploadUrl,method:'POST',data:formData}).then(
function (resp) {
//success
console.log(resp);
},
function (reason) {
//error
});


})
.error(function (data, status, header, config) {

});

最佳答案

将内容类型设置为未定义将使JavaScript按原样传递 header 数据,并覆盖默认的 Angular $httpProvider header 配置。 Angular $http Documentation

$http({url:url,method:"POST", headers:{'Content-Type':undefined}).then(success,failure); Theophiluses answer is correct 

关于java - 尝试执行 Blob 存储并将表单数据添加到数据存储 预检错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37858587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com