- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试使用 http://support.capsulecrm.com/customer/portal/articles/1639817-website-contact-form-integration 发布一个 Capsule CRM 页面我可以很容易地开始工作。但是,我想使用 AJAX 发布此内容,但一直遇到 CORS 错误。 Capsule CRM 人员已将其关闭,因此您无法在不遇到此错误的情况下使用 AJAX 提交。
联系他们后,我得到了这样的回复:
To do your requests using AJAX your website will need an additional page that will process your webform POST on your site instead of sending it directly to Capsule. This is sometimes called an AJAX Proxy. This page just forwards the post onto the Capsule webform url for processing, if you don't specify a "COMPLETE_URL" on your post the form will return an HTTP 200 response instead of a redirect to make it a bit easier for you to handle.
我花了大部分时间在 Internet 上寻找“AJAX 代理”,但我似乎无法找到示例并开始努力让它工作。希望一些代码可以帮助解决我的问题。
<form id="contact-form" class="form">
<label>Name: </label>
<input type="text" name="PERSON_NAME" placeholder="Name" value="" required/>
<label>Email: </label>
<input type="email" name="EMAIL" placeholder="Email" value="" required /><br>
<label>Telephone: </label>
<input type="text" name="PHONE" placeholder="Telephone number" value="" required /><br>
<input type="submit" name="submit" value="Submit" />
</form>
<div class="result">
</div>
$(文档).ready(函数() {
$('.form').submit(function(event){
event.preventDefault();
var messages = $('#result');
var formData = $('.form').serialize();
$.ajax({
type : "POST",
url : capsule.php,
data : formData
})
.done(function(response) {
console.log("Success: " + response);
}
})
.error(function(response) {
console.log("Error: " + response);
}
});
});
<?php
<form action="https://service.capsulecrm.com/service/newlead" method="post">
<input type="hidden" name="FORM_ID" value="XXXXXXXXXXXXXXXXXXXXXXXX">
<input type="text" name="FIRST_NAME" value="$_POST['PERSON_NAME']">
<input type="text" name="LAST_NAME" value="$_POST['PERSON_NAME']">
<input type="text" name="EMAIL" value="$_POST['PERSON_NAME']">
</form>
?>
我几乎需要做一个双重帖子。我需要将数据发布到 Capsule.php,然后我需要发布数据。如果该响应成功,则将其全部反转并更新 form.html 而不刷新。或者有人知道我应该如何形成“AJAX 代理”吗?
这是我第一次单独研究 AJAX,所以请保持温和 :)。
在尝试了下面的答案并进行了调试后,我在开发人员工具的控制台中找到了它。很难调试,因为我无法访问 Capsules CRM 服务器,所以我目前也在通过电子邮件向他们发送有关我遇到的问题的信息:
(
[url] => https://service.capsulecrm.com/service/newlead
[content_type] =>
[http_code] => 404
[header_size] => 315
[request_size] => 206
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0.397695
[namelookup_time] => 0.045858
[connect_time] => 0.109964
[pretransfer_time] => 0.268374
[size_upload] => 705
[size_download] => 0
[speed_download] => 0
[speed_upload] => 1772
[download_content_length] => 0
[upload_content_length] => 705
[starttransfer_time] => 0.333441
[redirect_time] => 0
)
感谢大家的耐心等待!
最佳答案
您误解了 AJAX 代理的概念。
capsule.php
脚本不应包含 HTML 表单,它应该从 form.html
接收 AJAX 请求数据并通过 POST 请求将其发送/传递到 Capsule CRM 页面.这可以通过多种方式完成:CURL、file_get_contents()
等。
下面是 CURL 的实现:
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => 'https://service.capsulecrm.com/service/newlead',
CURLOPT_NOBODY => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $_POST,
CURLOPT_SSL_VERIFYPEER => false,
));
$response = curl_exec($ch);
if ($response && curl_getinfo($ch, CURLINFO_HTTP_CODE) == 200)
return $response;
header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found');
关于javascript - 发布到 Capsule CRM 和 "AJAX Proxy",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27795167/
我们使用的是在线版 CRM。我已经创建了一个自定义工作流,但我似乎无法找到任何可以告诉我如何调试它的信息。我读过的所有内容都是指将 pdb 文件复制到服务器 bin/assemblies 文件夹中。由
我正在尝试将 crm 4 插件转换为 CRM 2011。有谁知道 CRm 2011 中的相应类型是什么? Customer, CrmDateTime, CrmDecimal, CrmFloat, CB
我正在尝试将 crm 4 插件转换为 CRM 2011。有谁知道 CRm 2011 中的相应类型是什么? Customer, CrmDateTime, CrmDecimal, CrmFloat, CB
我们在 CRM 2015 中有特定要求,我们需要限制非 S/S 管理员用户在业务流程中的向后移动。 我遍历了客户端 API(包括升级 1 的脚本),但我没有找到任何 API 来使用任何公开的方法来实现
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 10年前关闭。 Improve this
必须从另一个 webresoucre 控件访问 Webresource 控件使用了以下 javascript , var webResource = $(window.parent.Xrm.Pag
在将解决方案从 CRM 2011 升级到 CRM 2015 时,我只将 crm 2011 解决方案导出 zip 中生成的 solution.xml 文件的标题更改为 然后导入crm 2015,导入成
我在 BIDS 中创建了大量报告,并将它们部署到我的 CRM 在线实例中。我遇到的问题是以下代码。 看起来很简单,但它给了我以下错误。 无效数据源:不支持报告类型。 Micro
我有一个与 this post 非常相似的问题 我已经为 Dynamics CRM 2015 安装了“Microsoft Dynamics CRM Report Authoring Extension
在我开始之前,我们的客户必须通过 AFDS 连接才能继续使用 CRM 2011。所以我们谈论的是“IFD”环境。 我在使用“CRM 2011 Outlook Client”和“Window.Open(
我注册了 Dynamic CRM 在线试用版(30 天)并创建了一个非托管自定义解决方案(新字段、一些自定义实体等)。现在,我想导出非托管解决方案并将其导入到我的服务器中的 Dynamic CRM O
我们正在 MS Dynamics CRM 2015 中对自引用实体进行建模。 一个例子是建筑物和建筑物的一部分(建筑群 ==> 独立建筑 ==> 入口 ==> 楼层 ==> 平面)。 有一些字段,如成
我们有一个系统,用户可以在其中以表格形式输入他的数据,然后我们将数据保存在 CRM 中(它在云中,因此我们无法访问它等等)。现在突然我们每次都开始出错,我们尝试发送数据。 我们得到的错误是:An un
我刚刚加载了高级查找,我无法点击一半的图标/下拉菜单,因为它们都在错误的位置。它在其他服务器和其他机器上运行良好。看起来好像是 CSS 问题。有任何想法吗 最佳答案 我在 Firefox 中遇到了同样
我正在使用带有简单 OData 的 Ms Dynamic Web Api。我需要为链接实体添加新记录。 我正在使用下面的代码片段并引用文档 https://github.com/object/Simp
我在 Dynamics CRM 中的客户和投资组合之间存在 1:N 关系即每个账户都有多个投资组合,每个投资组合都有特定的 Assets 。 我正在尝试在账户表格上创建一个字段,用于计算账户“所有相关
我在更新案例表单上 customerid 字段内的文本时遇到问题 如上图所示,我创建了一个名为“Test Contact”的联系人和一个名为“Test Account”的帐户。 我有一个在后台运行的工
爱尔兰于 3 月 27 日开始实行夏令时。从那时起,任何已添加到 Dynamics 的记录都将任何日期字段设置为比实际添加时间晚一小时。 奇怪的是,Web UI 正确返回日期,而使用 SQL Serv
我需要能够扩展在云中运行的 CRM 2011。我需要能够从一个完全独立的 Internet 网站执行 CRUD 操作。我有什么选择?我对 CRM 的经验为零。我刚刚发现 OOB Web 服务只能在 C
好吧,想象一下一家银行的调用中心充满了低信任度的员工。工作人员需要通过电话为客户提供基本服务。调用中心的工作人员接听客户的电话,询问他们某些安全问题,然后以某种方式为客户提供服务。 现在,从客户的角度
我是一名优秀的程序员,十分优秀!