0

我有一个网站,其中实现了 jQuery.LiveAddress 插件,但它已被弃用,然后在 2014 年被 SmartyStreets 完全删除。

https://www.smartystreets.com/archive/jquery-plugin/website/configure

<script src="//ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="//d79i1fxsrar4t.cloudfront.net/jquery.liveaddress/5.2/jquery.liveaddress.min.js"></script>
<script>var liveaddress = $.LiveAddress({
    key: "YOUR_WEBSITE_KEY_HERE",
    debug: true,
    target: "US|INTERNATIONAL",
    addresses: [{
        address1: '#street-address',
        locality: '#city',
        administrative_area: '#state',
        postal_code: '#zip',
        country: '#country'
    }]
});
</script>

现在有一个 JavaScript SDK:https ://www.smartystreets.com/docs/sdk/javascript

const SmartyStreetsSDK = require("smartystreets-javascript-sdk");
const SmartyStreetsCore = SmartyStreetsSDK.core;
const Lookup = SmartyStreetsSDK.usStreet.Lookup;

// for Server-to-server requests, use this code:
// let authId = process.env.SMARTY_AUTH_ID;
// let authToken = process.env.SMARTY_AUTH_TOKEN;
// const credentials = new SmartyStreetsCore.StaticCredentials(authId, authToken);

// for client-side requests (browser/mobile), use this code:
let key = process.env.SMARTY_WEBSITE_KEY;
const credentials = new SmartyStreetsCore.SharedCredentials(key);

它说“对于客户端请求(浏览器/移动设备),请使用此代码”,但我假设无法将此代码用作浏览器 JavaScript 是否正确?我不需要在我的服务器上将节点作为服务运行才能使用此代码吗?

4

2 回答 2

1

客户端代码示例可以在浏览器中使用,而不仅仅是在 node.js 中。由于浏览器无权访问process.env. 您可以在此处以明文形式存储网站密钥,因为它将与您的主机名相关联。

您将需要使用某种库或 JS 捆绑器来处理您在第 1 行看到的 require 语句。如果这对您的设置更有效,您也可以导入 SDK,例如

import SmartyStreetsSDK from "smartystreets-javascript-sdk"

使用 SDK 与 jQuery 插件时要记住的一点是,SDK 不提供页面上的 UI 元素。它的解决方案比 jQuery 插件少。您将需要设计和创建自己的 UI 元素以供用户交互。

免责声明:我为 Smarty(以前的 SmartyStreets)工作

于 2022-01-13T22:12:16.460 回答
0

我遇到了同样的问题,不幸的是 smarty street 决定让用户更难实现他们的产品。

在我的搜索中,我遇到了这个小提琴,它没有 jquery 插件所做的所有功能,但它是一个很好的起点,不需要构建你自己的建议 UI。

<script async src="//jsfiddle.net/smartystreets/uptgh7c8/embed/"></script>

jsfiddle 源码

于 2022-02-11T04:39:50.367 回答