# Send data to localhost impossible (on Android)

**URL:** <https://forum.seatable.com/t/send-data-to-localhost-impossible-on-android/7557>\
**Category:** Developer Talk\
**Created:** [September 18, 2026, 3:48pm UTC](https://forum.seatable.com/t/send-data-to-localhost-impossible-on-android/7557 "2026-09-18T15:48:31Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Productivix](https://forum.seatable.com/letter_avatar_proxy/v4/letter/p/ec9cab/32.png) [@Productivix](https://forum.seatable.com/u/Productivix)\
**Post date:** [September 18, 2026, 3:48pm UTC](https://forum.seatable.com/t/send-data-to-localhost-impossible-on-android/7557/1 "2026-09-18T15:48:31Z")

</div>

## Your Setup:

- SeaTable Edition : cloud ([https://cloud.seatable.io/](https://cloud.seatable.io/)

Please describe your issue as precise as possible.

- I am using Js script from a button in a table row
- I am testing the Seatable screen on Android, on Chrome
- I want to send data of the script, so data from the row, to a local native app on ‘localhost’ on a specific port , and I have a network error : the JS script cannot reach localhost , and there is no traffic recorded of my local native app (local server)
- The same part of code has been tested on same terminal, in an web app written in React Js (of mine) and works
- to debug on Android , I display the last state past in a column of the table (see screen shot) ,
- I tested inside Chrome , ‘installed’ and not ‘installed (PWA)’ : same problem.
- On the 2 apps : mine and SeaTable, Chrome ask for authorization

## Code :

```javascript
const urlRaw = "http://127.0.0.1:9100";

const SendRawAndroid =async ( data ) => {
  //output.text("data in (Android) :"+ data); inutile
  await base.updateRow(table.name, row['_id'], { 'type_appareil':"debut SendRawAndroid" });
  const xhr = new XMLHttpRequest();
  xhr.open("POST", urlRaw, true);
  await base.updateRow(table.name, row['_id'], { 'type_appareil':"passage POST" });
  xhr.setRequestHeader("Connection", "close");
  xhr.timeout = 1500;
  await base.updateRow(table.name, row['_id'], { 'type_appareil':"passage timeout" });
  xhr.ontimeout = async () =>{ //affichage dans la colonne 
    await base.updateRow(table.name, row['_id'], { 'type_appareil':"ontimeout" });
  } //console.log("Envoi terminé (timeout)");
  xhr.onerror = async () => await base.updateRow(table.name, row['_id'], { 'type_appareil':"erreur xhr réseau" });
  xhr.send(data);
  await base.updateRow(table.name, row['_id'], { 'type_appareil':"envoi terminé" });
  return { status: 200, data: "OK" };
};

```

## Error Messages:

The code stops on line :

xhr.onerror = async () =\> await base.updateRow(table.name, row[‘\_id’], { ‘type\_appareil’:“erreur xhr réseau” });

 ![Screenshot_20260918_170153_Chrome](https://forum.seatable.com/uploads/default/original/2X/3/39eca715a1585a1053ba2b69ffebd9efdbc43502.jpeg)

## Questions :

- Is there a blocking code/parameter in the whole Seatable app against a localhost call ?
- do you think to another solution to this issue please ?

Thank you

---

<div class="post-metadata">

**Author:** ![daniel.pan](https://forum.seatable.com/user_avatar/forum.seatable.com/daniel.pan/32/13_2.png) [@daniel.pan](https://forum.seatable.com/u/daniel.pan)\
**Post date:** [September 21, 2026, 10:28am UTC](https://forum.seatable.com/t/send-data-to-localhost-impossible-on-android/7557/2 "2026-09-21T10:28:41Z")

</div>

Hello,

The behavior you see is most likely not caused by SeaTable itself. In Android Chrome, `127.0.0.1` / `localhost` always refers to the Android device itself, not your PC or another machine on the network. So if your native app/server is running on your desktop, the SeaTable script running in the browser on Android will not be able to reach it via `http://127.0.0.1:9100`.

A few things to check:

1. Use the machine’s LAN IP instead of `localhost`  
For example, try:

2. Make sure the server listens on a reachable interface  
It should bind to `0.0.0.0` or the LAN IP, not only to `127.0.0.1`.

3. Check CORS / browser security  
Since this request is made from the SeaTable web app in Chrome, your local server must allow the SeaTable origin, and HTTPS/mixed-content restrictions may also apply depending on how SeaTable is loaded.

4. Confirm whether the target service is actually running on the Android device  
If you really want to use `127.0.0.1`, then a service must be listening on the phone itself.

---

<div class="post-metadata">

**Author:** ![Productivix](https://forum.seatable.com/letter_avatar_proxy/v4/letter/p/ec9cab/32.png) [@Productivix](https://forum.seatable.com/u/Productivix)\
**Post date:** [September 29, 2026, 2:31pm UTC](https://forum.seatable.com/t/send-data-to-localhost-impossible-on-android/7557/3 "2026-09-29T14:31:46Z")

</div>

Thank you @daniel.pan , the problem is CORS. So I developed a proxy that push forward to the printer the load : I explain that on [Impression d'étiquettes code barres depuis une app web lowcode ouverte à Javascript, comme Seatable](https://productivixtrace.blogspot.com/2026/09/impression-detiquettes-code-barres.html)

---

<div class="post-metadata">

**Author:** ![system](https://forum.seatable.com/uploads/default/original/1X/04603423fe81a46c321283663086c475429e8ccb.png) [@system](https://forum.seatable.com/u/system)\
**Post date:** [October 1, 2026, 2:32pm UTC](https://forum.seatable.com/t/send-data-to-localhost-impossible-on-android/7557/4 "2026-10-01T14:32:38Z")

</div>

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.
