我们正在使用zapier.com连接许多程序,但我需要的一个功能是从邮政编码自动填充城市和州。这在zapier.com中可用作Zapier Run Javascript的设置代码。我似乎无法解决这个问题,并且非常感谢任何帮助。
<script type="text/javascript">//<![CDATA[
$(function() {
// IMPORTANT: Fill in your client key
var clientKey; // Deleted for Stack Overflow
var cache = {};
var container = $("#example1");
var errorDiv = container.find("div.text-error");
/** Handle successful response */
function handleResp(data)
{
// Check for error
if (data.error_msg)
errorDiv.text(data.error_msg);
else if ("city" in data)
{
// Set city and state
container.find("input[name='city']").val(data.city);
container.find("input[name='state']").val(data.state);
}
}
// Set up event handlers
container.find("input[name='zipcode']").on("keyup change", function() {
// Get zip code
var zipcode = $(this).val().substring(0, 5);
if (zipcode.length == 5 && /^[0-9]+$/.test(zipcode))
{
// Clear error
errorDiv.empty();
// Check cache
if (zipcode in cache)
{
handleResp(cache[zipcode]);
}
else
{
// Build url
var url = "https://www.zipcodeapi.com/rest/"+clientKey+"/info.json/" + zipcode + "/radians";
// Make AJAX request
$.ajax({
"url": url,
"dataType": "json"
}).done(function(data) {
handleResp(data);
// Store in cache
cache[zipcode] = data;
}).fail(function(data) {
if (data.responseText && (json = $.parseJSON(data.responseText)))
{
// Store in cache
cache[zipcode] = json;
// Check for error
if (json.error_msg)
errorDiv.text(json.error_msg);
}
else
errorDiv.text('Request failed.');
});
}
}
}).trigger("change");
});
//]]></script>
答案 0 :(得分:2)
看起来你正试图在这里使用客户端JavaScript。这在Zapier代码步骤中不起作用,因为它意味着在浏览器中使用(在网页上)。要在Zapier代码步骤中发出HTTP请求,您需要使用fetch
(此处有一些documentation)。
或者,从该API获取所需数据的最简单方法是使用Webhook步骤:
答案 1 :(得分:0)
这里有几点混淆,主要是:
Zapier的代码不是“在浏览器中”运行的(没有
<script>
标签或Jquery) - 它在名为Node.js的东西中运行。
您需要完全不同地解决问题 - 请务必查看https://zapier.com/help/code/和节点文档https://nodejs.org/docs/v4.3.2/api/中的示例。