gpt4 book ai didi

javascript - ColdFusion CFC CORS 和 AJAX 帖子

转载 作者:数据小太阳 更新时间:2023-10-29 04:17:10 25 4
gpt4 key购买 nike

我正在尝试将表单发布到远程服务器。目前的一般想法是 HTML 将在本地运行并通过 AJAX 发布到远程服务器。

所以有一个表单、JS 和它要发布到的 CFC。

下面是JS

$(document).ready(function () {
$("#submit").click(function(){
var setName = $("input[name='setName']").val();
var setNumber = $("input[name='setNumber']").val();
var setTheme = $("input[name='setTheme']").val();

var retailPrice = $("input[name='retailPrice']").val();
var purchaseStore = $("input[name='purchaseStore']").val();
var purchaseDate = $("input[name='purchaseDate']").val();
var purchasePrice = $("input[name='purchasePrice']").val();

var condition = $("input[name='condition']").val();

var sellPrice = $("input[name='sellPrice']").val();
var sellStore = $("input[name='sellStore']").val();
var selldate = $("input[name='selldate']").val();

$.ajax({
type: 'get',
url: 'http://www.chesteraustin.us/cfc/entry.cfc?ReturnFormat=json',
data: {
method: 'setEntry',
Set_Name: setName, //CFARGUMENT: JS_VARIABLE
Set_Number: setNumber,
Set_Theme: setTheme,
Retail_Price: retailPrice,
Purchase_From: purchaseStore,
Purchase_Price: purchasePrice,
Purchase_Date: purchaseDate,
Status: condition,
Sell_Date: sellPrice,
Sell_from: sellStore,
Sell_date: selldate
},
contentType: 'json',
dataType: 'json',
success: function(response) {
console.log("you da man");
}
});
});
});

下面是它被发布到的 CFC(为了简洁我删掉了很多):

<cfcomponent>
<cfheader name="Access-Control-Allow-Origin" value="*" />
<cfheader name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE" />
<cfheader name="Access-Control-Allow-Headers" value="Content-Type" />

<cffunction name="setEntry" access="remote">
<cfreturn 1>
</cffunction>

</cfcomponent>

编辑:清理了 CFC,删除了多余的评论。

在做研究时,我发现 CFHEADER 应该放在最前面,以允许跨源,但是,Chrome 仍然显示 No 'Access-Control-Allow-Origin ' header 出现在请求的资源上。 错误。

一些背景知识:我在共享主机上。我在 CFC 所在的文件夹中有一个空白的 Application.CFC。

最佳答案

经过大量研究,我找到了解决方案。 ColdFusion 代码按预期工作。但是,还有其他东西控制 header (在这种情况下,它是 Apache)。

使用 http://enable-cors.org/server_apache.html作为指南,我使用以下内容修改了我的 public_html 目录中的 .htaccess 文件:Header set Access-Control-Allow-Origin "*" . Chrome 出现了另一个错误,指出 Access-Control-Allow-Headers 没有 Content-Type,所以我也添加了它:Header set Access-Control-Allow-Headers Content-Type .瞧,它开始工作了。

总而言之,如果 ColdFusion 上的 CORS 不工作:<cfheader name="Access-Control-Allow-Origin" value="*" /> , 检查网络服务器配置。我的.htaccess文件现在有两行,CORS 现在可以工作了。

Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers Content-Type

关于javascript - ColdFusion CFC CORS 和 AJAX 帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22487309/

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