代码如下,如何解决跨域function getTruckNo() { const TruckNo = document.getElementById("TruckNo").value; const options = { method: "GET", url: "/api/parking-info", params: { Token: "Parking2023", TruckNo: TruckNo }, headers: { "content-type": "application/json"}, }; axios.request(options).then(function (response){ console.log(response.data); var data = JSON.parse(response.data); console.log(data.TruckNo); console.log(data.Intime); console.log(data.ParkTime); console.log(data.Money); showResult(data); }) .catch(function (error) { console.error(error); }); } function showResult(data) { const resultDiv = document.getElementById("result"); resultDiv.textContent = "车牌:"+ data.TruckNo + "进场时间:"+ data.Intime+", 停车时长:" + data.ParkTime+", 产生金额:" + data.Money; }
时间: 2024-04-18 19:30:17 浏览: 149
该代码中的跨域问题可以通过在服务器端进行配置来解决。以下是几种可行的解决方法:
1. 使用代理服务器:在服务器端设置一个代理服务器,将客户端请求转发到目标服务器,然后将响应返回给客户端。这样客户端就可以绕过浏览器的同源策略限制,实现跨域请求。
2. CORS(跨域资源共享):在服务器端设置响应头部,允许指定的域名访问资源。可以在服务器端的响应中添加如下头部信息:
```
Access-Control-Allow-Origin: 允许访问的域名
Access-Control-Allow-Methods: 允许的请求方法
Access-Control-Allow-Headers: 允许的请求头部
```
例如,在 Node.js 中,可以使用以下代码来设置响应头部:
```javascript
res.setHeader('Access-Control-Allow-Origin', 'http://example.com');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
```
这样就允许了来自"http://example.com"域名的跨域请求。
3. JSONP:JSONP(JSON with Padding)是一种利用 `<script>` 标签可以跨域加载资源的特性来解决跨域问题的方法。服务器返回的数据需要包裹在一个函数调用中,并通过 `<script>` 标签引入,然后客户端通过回调函数处理返回的数据。
例如,在服务器端返回的响应中,可以将数据包裹在一个指定的回调函数中,如:
```javascript
callbackFunction({ TruckNo: '123', Intime: '2022-01-01', ParkTime: '2 hours', Money: '10' });
```
然后在客户端中定义一个同名的全局函数来处理返回的数据:
```javascript
function callbackFunction(data) {
// 处理返回的数据
showResult(data);
}
```
最后,在客户端使用 `<script>` 标签引入服务器返回的数据:
```html
<script src="http://example.com/api/parking-info?callback=callbackFunction"></script>
```
这些方法都可以解决跨域问题,具体选择哪种方法取决于你的需求和服务器环境。
阅读全文