Skip to content

Error:XMLHttpRequest failed: "Unable to connect to the Parse API" #667

Description

@vdwiroop

I am newbie having problem deploying parse server on to Heroku.

I updated my JavaScript SDK. Created Heroku account attached a MongoLab Database to it and created all necessary environment variable (In Heroku) and deployed Parse Example App to it. I updated index.js to below. and updated my Client code to run a simple query. But I get the below error.

What am I missing? Can someone point me to right direction?

Error:

Error:XMLHttpRequest failed: "Unable to connect to the Parse API"

My Index.js:

// Example express application adding the parse-server module to expose Parse
// compatible API routes.

var express = require('express');
var ParseServer = require('parse-server').ParseServer;

var databaseUri = process.env.DATABASE_URI || process.env.MONGOLAB_URI;

if (!databaseUri) {
console.log('DATABASE_URI not specified, falling back to localhost.');
}

var api = new ParseServer({
databaseURI: databaseUri || '',
cloud: './cloud/main.js',
appId: process.env.APP_ID || '',
restAPIKey: process.env.REST_API_KEY || '',
javascriptKey: process.env.JAVASCRIPT_KEY || '',
fileKey: process.env.FILE_KEY|| '',
serverURL: process.env.SERVER_URL || '',
masterKey: process.env.MASTER_KEY || '' //Add your master key here. Keep it secret!
});

var app = express();

// Serve the Parse API on the /parse URL prefix
var mountPath = process.env.PARSE_MOUNT || '/parse';
app.use(mountPath, api);

// Parse Server plays nicely with the rest of your web routes
app.get('/', function(req, res) {
res.status(200).send('I dream of being a web site.');
});

var port = process.env.PORT || 1337;
app.listen(port, function() {
console.log('parse-server-example running on port ' + port + '.');
});

Client code initialization:

  Parse.initialize("s57KWCMHm9dy6MRPYBwbVyBCjNC7itQOnfB5zYic", "unused");
  Parse.serverURL = 'https://myapp.herokuapp.com/';

Activity

  1. gfosco commented on Feb 26, 2016

    @gfosco
    Contributor

    You're missing the mount in the client code initialization.

    Parse.serverURL = 'https://myapp.herokuapp.com/parse';
    

    That should fix it..

  2. vdwiroop commented on Feb 26, 2016

    @vdwiroop
    Author

    I am getting {"error":"unauthorized"} when I use with mount. I get the same error when I directly open the URL in the browser.

    Any guidance please. I am using different login credentials (different databse userid ) to login to same database from Parse and Heroku. Could that be a problem?

  3. gfosco commented on Feb 26, 2016

    @gfosco
    Contributor

    unauthorized means you are hitting the parse-server but not succeeding in providing a matching app id and valid keys... The browser makes sense, because it's not meant to be viewed by a browser and the browser isn't passing an app id. So, how are your making the request which fails?... If you are defining any client keys (clientKey, javascriptKey, dotNetKey, restAPIKey) then you must also pass a valid client key... I recommend not setting any of those keys.

  4. vdwiroop commented on Feb 26, 2016

    @vdwiroop
    Author

    You are correct I removed all other key while making a request and it is working now!

    Thanks a bunch!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions