Access to REST API from JS
需要从 JS 代码访问 REST API,使用 jQuery ajax:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
function tryQwintry () { var data = { "params[weight]" :"100", "params[dimensions]" :"100x100x100", "params[delivery_pickup]" :"msk_1", "params[insurance]" :"false", "params[items_value]" :"350", "params[retail_pricing]" :"1" }; $.ajax({ |
API 文档(所有示例均为 PHP):
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<?php define(‘SITE_URL’, ‘logistics.qwintry.com’); define(‘API_KEY’, ‘YOUR_API_KEY’); //don’t forget to set your key! $url = ‘http://’. SITE_URL .‘/api/cost’; $data = array ( $ch = curl_init(); |
我用 Java 编写的代码相同:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 |
public double getCostPickup(String weight, String dimensions, String toPickup, String insurance, String value) throws Exception {
Map<String, Object> params = new HashMap<>(); String url = BASE_URL+"/api/cost"; |
配置ajax请求数据有问题。
所以任何帮助将不胜感激。
更新:更改了我的 JS 代码:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
function tryQwintry () { var data = { "params[weight]" :"100", "params[dimensions]" :"100x100x100", "params[delivery_pickup]" :"msk_1", "params[insurance]" :"false", "params[items_value]" :"350", "params[retail_pricing]" :"1" }; $.ajax({ |
在 Chrome 的开发者模式下出现此错误:
你在使用 CORS 请求吗?
如果不是,则将数据类型更改为 “json” 而不是 “dataType: “jsonp”。
如果您正在执行 CORS,则启用 CORS 请求,那么您需要添加 php 代码以允许 CORS 请求。
1
|
header("Access-Control-Allow-Origin: *");
|
使用 php 标头检查此链接 CORS
Json 数据格式:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
var data = { weight : 100, dimensions :"100x100x100", delivery_pickup :"msk_1", insurance : false, items_value : 350, retail_pricing : 1 }; $.ajax({ |
注意:JOSNP
不允许使用方法:”POST”
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/php/268536.html