gpt4 book ai didi

asp.net - 使用 easyXdm 跨域 AJAX Post

转载 作者:行者123 更新时间:2023-12-02 15:12:24 24 4
gpt4 key购买 nike

我正在尝试使用 easyXdm 库来获取跨域 AJAX 帖子。

在我的本地开发环境中,我有两个站点:

1. http://localhost/MySite/ws/easyXDM/cors/index.html (EasyXdm file)2. http://localhost/MyClientSite/TestPage.html (AJAX post from here)

TestPage.html (AJAX Post)

var rpc = new easyXDM.Rpc({
remote: "http://localhost/MySite/ws/easyXDM/cors/index.html"
},
{
remote: {
request: {}
}
});

rpc.request({
url: "http://localhost/MySite/ws/MyService.asmx/DoSomething",
method: "POST",
data: jsonData
}, function(response) {
console.log(JSON.parse(response.data));

$('#thanksDiv').fadeIn(2000, function () {
$('#thanksDiv').fadeOut(4000);
});
});

当我执行 AJAX 发布时,我会在浏览器控制台中看到以下内容:

easyXDM present on 'http://localhost/MySite/ws/easyXDM/cors/index.html?xdm_e=http%3A%2F%2Flocalhost%2FMyClientSite%2FTestPage.html&xdm_c=default884&xdm_p=4 
native JSON found
easyXDM.Rpc: constructor
{Private}: preparing transport stack
{Private}: using parameters from query
easyXDM.stack.SameOriginTransport: constructor
easyXDM.stack.QueueBehavior: constructor
easyXDM.stack.RpcBehavior: init
{Private}: firing dom_onReady
... deferred messages ...
easyXDM.Rpc: constructor
{Private}: preparing transport stack
{Private}: using parameters from query
easyXDM.stack.SameOriginTransport: constructor
easyXDM.stack.QueueBehavior: constructor
easyXDM.stack.RpcBehavior: init
... end of deferred messages ...
easyXDM.stack.SameOriginTransport: init
easyXDM.stack.RpcBehavior: received request to execute method request using callback id 1
easyXDM.stack.RpcBehavior: requested to execute procedure request
easyXDM.stack.QueueBehavior: removing myself from the stack

问题: Web 服务从未真正接收过数据。这是显而易见的,因为我的 AJAX post success 函数应该显示一个 thanksDiv 并且还应该在 *database 中创建一条记录。

注意:我将替换现有的 AJAX 邮政代码,因为我需要使用 easyXdm 来解决客户网站上的 Internet Explorer 6 和 7 问题。

其他信息:我的 easyXdm 文件所在的文件结构如下:

/ws/easyXDM/easyXDM.debug.js
/ws/easyXDM/easyXdm.swf
/ws/easyXDM/json2.js
/ws/easyXDM/name.html
/ws/easyXDM/cors/index.html

最佳答案

我的 Web 服务抛出 HTTP 500 服务器错误,因为 jsonData 未通过 easyXdm 正确发送。

json 数据在发布之前看起来像这样:

{ "param1": "value1", "param2": "value2"...... }

但是,Web 服务正在接收每行一个字符的数据,例如

{
"
p
a
r
a
m
"
....

在发帖之前我没有序列化 json 数据。因此,根据我在原始问题中发布的原始代码:

为了让它工作,我改变了线路

data: jsonData 

data: JSON.parse(jsonData)

关于asp.net - 使用 easyXdm 跨域 AJAX Post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15671574/

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